返回列表 发帖

[原创] [原创]使用Groovy编写Struts2的action

采用groovy编写action,可以无需重新部署程序,方便于调试,节省开发进度。而且,groovy作为Java VM的脚本语言可以与Java程序无缝地整合。
首先,下载struts2groovy插件:http://cwiki.apache.org/S2PLUGINS/groovy-plugin.html
将其拷入web工程的lib文件夹下,除此以外还需groovyjar包以及相关的包。主要是groovy, asm antlr 包。下图显示工程所有的jar

第二,采用groovy编写actionLoginAction.groovy
package com.hopeteam.struts.action;
public class LoginAction {
       def username;
       def password;
       public String getUsername() {
              return username;
       }
       public void setUsername(String username) {
              this.username = username;
       }
       public String getPassword() {
              return password;
       }
       public void setPassword(String password) {
              this.password = password;
       }
       public String execute() throws Exception
       {
              if(getUsername().equals("fengzhizi")
                            && getPassword().equals("123456"))
                            {
                     return "success";
                            }
              else
              {
                     return "error";
              }
       }
}
编写完毕,需要在struts.xml中配置该action。在配制该action之前,需要在struts.xml将框架常量设置为groovyObjectFactory
<constant name="struts.objectFactory" value="groovyObjectFactory" />
action的配置同样需要修改:
       <action name="Login"
           class="com.hopeteam.struts.action.LoginAction.groovy">
           <result name="error">/error.jsp</result>
           <result name="success">/welcome.jsp</result>
    </action>

第三,配置完毕后将LoginAction.groovy放入Tomcat 5.5\webapps\Struts2Groovy\WEB-INF\classes\com\hopeteam\struts\action
编写welcome.jsp:
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
    <head>
       <title>success</title>
       <meta. http-equiv="Content-Type" content="text/html; charset=GBK">
    </head>
    <body>
        用户:<s:property value="username" />登陆</br>
        groovy编写struts2的action测试成功
    </body>
</html>
最后,我们看一下运行结果。

附件:
天行健,君子以自强不息
地势坤,君子以厚德载物
   黑色海岸线欢迎您

返回列表 回复 发帖