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

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

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

    在Struts2中使用Groovy來編寫Action

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

    今天在查關于Struts2和Ajax方面的資料的時候,發現一個在Struts2中使用Groovy編寫Action的插件.因為本身就對Groovy比較感興趣,但因為最近的工作,沒有多少時間來研究,看到這個插件,哈,正好可以在這段時間的應用中使用到,這樣就可以在工作中應用Groovy啦.

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

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

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

    struts.objectFactory=groovyObjectFactory

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

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

    個人習慣使用后面一種.

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

    這個插件所依賴的包有:

    • 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,與正常的配置差不多,只不過class里用的是Groovy的類,而且需要加上Groovy的擴展名,如下:

    <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的了.呵

    下面來編寫TestAction.groovy:

    package com.puras.groovy;

    class TestAction {

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

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

    類之間的調用等,與使用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>

    現在,啟動你的WEB服務器,之后打開瀏覽器,輸入地址:http://localhost:8080/your_webapp/groovy.action,就可以看到效果了.

    下一步目標:

    • 加入Spring
    • 加入Ajax

    Feedback

    # re: 在Struts2中使用Groovy來編寫Action  回復  更多評論   

    2007-09-03 20:33 by 山風小子
    package com.puras.groovy;

    class TestAction {

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

    我覺得
    def getMessage() {
    return message
    }
    可以省略,
    那樣你的代碼會更簡潔 :)

    # re: 在Struts2中使用Groovy來編寫Action  回復  更多評論   

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

    # re: 在Struts2中使用Groovy來編寫Action  回復  更多評論   

    2007-09-04 10:02 by Puras.He
    @山風小子
    這樣確實是更加簡潔了.呵
    謝謝提醒

    @Alexander.Yu
    不加這個方法
    在JSP里同樣可以取到Message的值的
    沒有什么問題

    # re: 在Struts2中使用Groovy來編寫Action  回復  更多評論   

    2007-09-04 19:27 by 山風小子
    @Alexander.Yu
    如果定義成員變量時,沒有使用訪問限制關鍵字,比如private, protected等,那么Groovy就會自動幫我們生成getter和setter :)

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

    Copyright © puras

    主站蜘蛛池模板: 亚洲妇熟XXXX妇色黄| 在线观看亚洲成人| 亚洲精品无码久久久久久久| 日韩精品在线免费观看| 亚洲AV无码乱码在线观看裸奔| 91av免费在线视频| 亚洲精品国产品国语在线| a毛片在线还看免费网站| 亚洲丁香色婷婷综合欲色啪| 日韩精品久久久久久免费| 亚洲国产综合人成综合网站00| 丁香花免费高清视频完整版| 中文字幕精品三区无码亚洲| 免费国产a国产片高清网站| 成人免费视频一区二区| 亚洲日韩欧洲乱码AV夜夜摸| 免费A级毛片无码A∨中文字幕下载| 亚洲性色成人av天堂| 成年女人毛片免费视频| 免费大片黄在线观看| 久久久久亚洲精品无码系列| 99精品视频免费在线观看| 亚洲粉嫩美白在线| 免费一级毛片女人图片| 免费观看男人吊女人视频| 亚洲制服丝袜第一页| 波多野结衣中文一区二区免费| 最近中文字幕大全免费版在线 | 亚洲天堂中文字幕| 无码专区永久免费AV网站| 亚洲AV综合永久无码精品天堂| 亚洲精品高清在线| 亚洲高清免费在线观看| 亚洲a∨无码精品色午夜| 久久久久亚洲精品无码系列| 四虎免费在线观看| a级毛片在线免费看| 精品亚洲AV无码一区二区| 亚洲国产精品无码AAA片| 91香蕉视频免费| 两性色午夜免费视频|