关于Struts2-Action的一些用法

作者在 2010-11-02 11:23:36 发布以下内容
1. Action类的getter和setter方法不仅可以封装HTTP请求参数,还可以封装处理结果信息。
2. 通过ActionContext访问ServletAPI
    取得参数
ActionContext ctx = ActionContext.getContext();
Map application = ctx.getApplication();
Map session = ctx.getSession();
Integer counter = (Integer) application.get("counter");
session.put("userName", userName);
    使用
${ applicationScope.counter }<p/>
${ sessionScope.userName }<p/>
3. 通过aware拦截器访问ServletAPI
public class LoginAwareAction implements Action, ServletRequestAware, ApplicationAware{

    public String execute() throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

    public void setServletRequest(HttpServletRequest arg0) {
        // TODO Auto-generated method stub
        
    }

    public void setApplication(Map<String, Object> arg0) {
        // TODO Auto-generated method stub
        
    }

}
ApplicationAware接口
CookieAware接口
ParameterAware接口
ServletRequestAware接口
ServletResponseAware接口
4. 利用动态方法处理多个提交请求:
在Action类里,添加除execute以外的方法,如method1(),mehtod2()
在调用时,指定特定action的特定方法,如
<s:submit value="regist!!!" action="loginAction!anotherE"></s:submit>
5. 利用action标签的method属性处理多个提交请求:
<action name="mylogin" class="action.BookAction" mentod="xxx">
在提交相应请求的时候:
function login() {
    form.action = "mylogin.action";
    form.submit();
}
function regist() {
    form.action = "myRegist.action";
    form.submit();
}

<s:submit value="ok" onclick="login()">
6. 还可以使用通配符
<script type="text/javascript">
  function test1() {
      form.action = "aaAction.action";
      form.submit;
  }
   function test2() {
      form.action = "bbAction.action";
      form.submit;
  }
</script>

<s:form name="form">
    This is my JSP page. <br>
    <s:submit value="test1!!!" onclick="test1()"/>
    <s:submit value="test2!!!" onclick="test2()"/>
</s:form>

在struts.xml中的配置:
<action name="*Action" class="action.LoginAction" method="{1}">
            <result name="another">/anotherSuccess.jsp</result>
            <result name="error">/loginError.jsp</result>
</action>
而在action类中,需配置aa(),bb()两个方法。
Struts2的匹配规则是:先匹配不使用通配符的action标签,如果未找到匹配的,就从前往后寻找使用通配符的action标签,如果都没有找到,系统则抛出异常。
7. 默认action:
<default-action-ref name="xxx" />
<action name="xxx" class="xxxxxxxx">
.....
</action>
默认Action一定要在所有action之前配置。
默认分类 | 阅读 844 次
文章评论,共0条
游客请输入验证码