struts2 动态方法调用

来源:互联网 发布:c语言百分号 编辑:程序博客网 时间:2024/04/27 16:16

Struts2的动态方法调用 类似于Struts1的dispatchAction   具体用法如下:

 

第一种:   Action名 + !+ 方法名 + .action   

struts.xml

<constant name="struts.devMode" value="true" />
 <package name="dmi" namespace="/dmi" extends="struts-default">
        <action name="LoginAction" class="com.accp.struts2.biz.LoginAction">
            <result>
                /dmi/dmi_result.jsp
            </result>
        </action>
  </package>

 

 访问页面:      注意此处的action的路径   LoginAction!regist.action

  <form action="../dmi/LoginAction!regist.action" method="post">
     name:<input type="text" name="uname"/><br/>
     age:<input type="text" name="uage"/><br/>
     <input type="submit" value="go"/>
  </form>

 

第二种:  在Action节点中通过method属性指定执行的方法

struts.xml

<package name="dmi" namespace="/dmi" extends="struts-default">

                           通过method属性指定要调用的方法名为login
        <action name="LoginAction" class="com.accp.struts2.biz.LoginAction" method="Login" >
            <result>
                /dmi/dmi_method_result.jsp
            </result>
        </action>
</package>

 

访问页面:

<form action="../dmi/LoginAction.action" method="post">
     name:<input type="text" name="uname"/><br/>
     age:<input type="text" name="uage"/><br/>
     <input type="submit" value="go"/>
</form>

 

执行类:

public class LoginAction extends ActionSupport {
  //..........此处省略属性和方法

 
 public String Login() throws Exception{
  System.out.println("call login method ======" + getUname());
  return SUCCESS;
 }
}

第三种:   使用通配符形式完成动态调用

struts.xml

<package name="dmi" namespace="/dmi" extends="struts-default">

             此处用*号指定任意形式的Action,比如 LoginAction

           method={1} 此处的{1}指定的是第一个*号  也就是 Login
        <action name="*Action" class="com.accp.struts2.biz.LoginAction" method="{1}">
            <result>
                /dmi/dmi_wildcard_result.jsp
            </result>
        </action>
</package>

 

访问页面:

<form action="../dmi/LoginAction.action" method="post">
     name:<input type="text" name="uname"/><br/>
     age:<input type="text" name="uage"/><br/>
     <input type="submit" value="go"/>
</form>

 

执行类:

public class LoginAction extends ActionSupport {
  //..........此处省略属性和方法

 
 public String Login() throws Exception{
  System.out.println("call login method ======" + getUname());
  return SUCCESS;
 }
}

原创粉丝点击