<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 閱讀(1801) 評論(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

    主站蜘蛛池模板: 成人免费夜片在线观看| 8090在线观看免费观看| 亚洲精品无码MV在线观看| 99精品免费观看| 亚洲色大成WWW亚洲女子| 亚洲国产精品尤物YW在线观看| 亚洲熟妇丰满多毛XXXX| 小说区亚洲自拍另类| 亚洲Aⅴ无码专区在线观看q| 思思99re66在线精品免费观看| 久久久亚洲欧洲日产国码二区| 国产精品99精品久久免费| 亚洲AV综合色区无码一区爱AV| 97国免费在线视频| 亚洲人成人网毛片在线播放| 91在线视频免费播放| 国产精品hd免费观看| 国产亚洲精品成人AA片新蒲金| 黄色网址免费在线观看| ASS亚洲熟妇毛茸茸PICS| 337p日本欧洲亚洲大胆裸体艺术| 国产99视频精品免费视频76| 亚洲日韩欧洲乱码AV夜夜摸| 嫩草视频在线免费观看| 野花香高清视频在线观看免费| 亚洲国产精品人久久| 99国产精品永久免费视频| 免费无码av片在线观看| 欧美日韩亚洲精品| 亚洲一区无码精品色| 午夜视频在线免费观看| 亚洲欧洲日产国码二区首页| 久久久久亚洲AV成人网人人软件| 久久爰www免费人成| 国产高清视频免费在线观看| 亚洲精品无码专区久久| 亚洲成人网在线观看| 国产亚洲人成网站在线观看不卡| jjizz全部免费看片| 国产午夜无码精品免费看| 一级毛片免费在线|