<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    在Struts2中使用Groovy來(lái)編寫Action

    Posted on 2007-09-03 10:41 puras 閱讀(1801) 評(píng)論(4)  編輯  收藏 所屬分類: Struts2.0

    今天在查關(guān)于Struts2和Ajax方面的資料的時(shí)候,發(fā)現(xiàn)一個(gè)在Struts2中使用Groovy編寫Action的插件.因?yàn)楸旧砭蛯?duì)Groovy比較感興趣,但因?yàn)樽罱墓ぷ?沒(méi)有多少時(shí)間來(lái)研究,看到這個(gè)插件,哈,正好可以在這段時(shí)間的應(yīng)用中使用到,這樣就可以在工作中應(yīng)用Groovy啦.

    這個(gè)插件是:s2ss(Struts 2 Scripting Support), 地址:http://code.google.com/p/s2ss/

    下載地址:http://s2ss.googlecode.com/files/struts2-groovy-plugin-0.2.jar

    將這個(gè)Jar包放到WEB-INF/lib下,之后修改struts.properties,添加一行:

    struts.objectFactory=groovyObjectFactory

    也可以修改struts.xml,添加下面一行:

    <constant name="struts.objectFactory" value="groovyObjectFactory" />

    個(gè)人習(xí)慣使用后面一種.

    再將Groovy的包放到WEB-INF/lib下,我用的是groovy-all-1.0.jar.

    這個(gè)插件所依賴的包有:

    • Struts 2.0.x (struts2-api-2.0.x.jar, struts2-core-2.0.x.jar)
    • Groovy 1.0 (groovy-all-1.0.jar)
    • XWork 2.x (xwork-2.0.x.jar)
    • Commons Loggings 1.0 (commons-logging-1.0.4.jar)

    在struts.xml中配置Action,與正常的配置差不多,只不過(guò)class里用的是Groovy的類,而且需要加上Groovy的擴(kuò)展名,如下:

    <action name="groovy" class="com.puras.groovy.TestAction.groovy">    
    <result>/WEB-INF/pages/groovy/test_action.jsp</result>
    </action>

    攔截器與Action相似,

    ..
    <interceptor name="groovyInterceptor" class="com.puras.groovy.Interceptor.groovy" />
    ..
    <interceptor-ref name="groovyInterceptor" />

    這里就只演示Action的了.呵

    下面來(lái)編寫TestAction.groovy:

    package com.puras.groovy;

    class TestAction {

      def message;
      def execute() {
          message = "Hello world"
          return "success"
      }
      def getMessage() {
          return message
      }
    }

    不用進(jìn)行編譯,直接將.groovy文件復(fù)制到WEB-INF/classes/com/puras/groovy/下就可以了.

    類之間的調(diào)用等,與使用Java相同.

    最后再編寫一下用于顯示的test_action.jsp就OK啦.代碼如下:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <s:property value="message"/>
    <br />
    <hr />
    </body>
    </html>

    現(xiàn)在,啟動(dòng)你的WEB服務(wù)器,之后打開(kāi)瀏覽器,輸入地址:http://localhost:8080/your_webapp/groovy.action,就可以看到效果了.

    下一步目標(biāo):

    • 加入Spring
    • 加入Ajax

    Feedback

    # re: 在Struts2中使用Groovy來(lái)編寫Action  回復(fù)  更多評(píng)論   

    2007-09-03 20:33 by 山風(fēng)小子
    package com.puras.groovy;

    class TestAction {

    def message;
    def execute() {
    message = "Hello world"
    return "success"
    }
    def getMessage() {
    return message
    }
    }

    我覺(jué)得
    def getMessage() {
    return message
    }
    可以省略,
    那樣你的代碼會(huì)更簡(jiǎn)潔 :)

    # re: 在Struts2中使用Groovy來(lái)編寫Action  回復(fù)  更多評(píng)論   

    2007-09-04 01:22 by Alexander.Yu
    @山風(fēng)小子
    省了那個(gè)方法,在JSP里就得不到Message的值了.

    # re: 在Struts2中使用Groovy來(lái)編寫Action  回復(fù)  更多評(píng)論   

    2007-09-04 10:02 by Puras.He
    @山風(fēng)小子
    這樣確實(shí)是更加簡(jiǎn)潔了.呵
    謝謝提醒

    @Alexander.Yu
    不加這個(gè)方法
    在JSP里同樣可以取到Message的值的
    沒(méi)有什么問(wèn)題

    # re: 在Struts2中使用Groovy來(lái)編寫Action  回復(fù)  更多評(píng)論   

    2007-09-04 19:27 by 山風(fēng)小子
    @Alexander.Yu
    如果定義成員變量時(shí),沒(méi)有使用訪問(wèn)限制關(guān)鍵字,比如private, protected等,那么Groovy就會(huì)自動(dòng)幫我們生成getter和setter :)

    posts - 47, comments - 124, trackbacks - 0, articles - 0

    Copyright © puras

    主站蜘蛛池模板: 免费A级毛片在线播放| baoyu122.永久免费视频| 噼里啪啦电影在线观看免费高清| 亚洲国产成人片在线观看| 黄色网页在线免费观看| 国产亚洲情侣一区二区无| 久久国产福利免费| 亚洲日韩乱码中文无码蜜桃臀网站 | 成人午夜免费视频| 亚洲精品国产精品乱码不卞| 午夜免费国产体验区免费的| 国产成人精品亚洲精品| 国产日韩一区二区三免费高清| 亚洲人成电影福利在线播放| **aaaaa毛片免费同男同女| 亚洲 暴爽 AV人人爽日日碰| 精品国产免费观看| 人禽伦免费交视频播放| 亚洲AV永久无码区成人网站| 亚洲免费网站在线观看| 亚洲精品久久久久无码AV片软件| www.亚洲精品| 日本一区二区免费看| 亚洲日韩精品A∨片无码加勒比| 四虎影视在线永久免费看黄| 国产精品免费久久久久影院 | 无码av免费一区二区三区试看| 亚洲人色大成年网站在线观看| 午夜爱爱免费视频| 国产成人精品免费大全| 亚洲精品中文字幕麻豆| 国产成人免费片在线观看| 99精品视频免费| 国产午夜亚洲精品国产| 亚洲午夜久久久影院| 无码人妻一区二区三区免费| 免费国产va视频永久在线观看| 亚洲人成依人成综合网| 国产精品免费综合一区视频| 久久久久久影院久久久久免费精品国产小说| 亚洲免费在线视频播放|