struts2 action的动态应用(DMI)

来源:互联网 发布:linux sync用户 编辑:程序博客网 时间:2024/04/30 04:48


1.创建action 类
package com.demo.action;importcom.opensymphony.xwork2.ActionSupport;publicclass userAction extends ActionSupport {     /**      *      */     private static final long serialVersionUID = 1L;     private String info; //提示信息     //添加用户信息     public String add() throws Exception     {          info = "add" ;          return info ;     }     //更新用户信息     public String update() throws Exception     {          info = "update" ;          return info ;     }     public String getInfo() {          return info ;     }     public void setInfo(String info) {          this .info = info;     }}
2.配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC   "-//Apache Software Foundation//DTD Struts Configuration2.3//EN"   "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts><!-- 声明包 --><constant name="struts.enable.DynamicMethodInvocation" value="true" />    <package name="myPackage" extends="struts-default" namespace="/">    <!-- 定义action -->    <action name="userAction" class="com.demo.action.userAction" >    <result name="update">/user_update.jsp</result>    <result name="add">/user_add.jsp</result>     <result >/first.jsp</result>     </action>    </package></struts>

注意:我用的是2.3版本的,如果添加<constant name ="struts.enable.DynamicMethodInvocation" value= "true" />  显式声明使用DMI,则失败
name= "update"中update为你要调用的函数的返回值,如果return success;则直接转向第三个result,也就是result为默认的。
3.调用action
< body>      <a href= "userAction"> 转向第一个页面 </ a>   <!--跳向第三个result-->      <br >      <a href= "userAction!add" >添加用户 </ a>          <!--跳向第二个result-->      <br >      <a href= "userAction!update"> 更新用户 </a >     <!--跳向第一个result--></ body>