您的位置:首页 > 编程语言 > Java开发

Struts2中调用Action的方法

2016-06-28 23:36 363 查看
Struts2中Action的调用方法可以分为三种

第一种:首先定义一个Action类,这个类中有两个方法一个登录,一个注册

public String login(){
System.out.println("登录的方法........................");
if (username.equals("demo") && password.equals("demo")) {
return "login_success";
} else {
return "error";
}
}

public String register(){
System.out.println("注册的方法........................");
if (password.equals(repassword)) {
return "register_success";
} else {
return "error";
}
}其实还有三个属性:
private String username;
private String password;
private String repassword;

还有get set方法
然后配置Action

<action name="user" class="com.action.packages.UserAction">
<result name="login_success">WEB-INF/pages/login_success.jsp</result>
<result name="register_success">WEB-INF/pages/register_success.jsp</result>
<result name="error">WEB-INF/pages/error.jsp</result>
</action>最后动态调用
<form action="user!login.action">
用户名:<input type="text" name="username"/><br/><br/>
密  码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/>  <input type="reset" value="重置"/>
</form>这个就是调用的配置中名为user 的Action中的login方法,调用register方法如下:
<form action="user!register.action">
用户名:<input type="text" name="username"/><br/><br/>
密  码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/>  <input type="reset" value="重置"/>
</form>总结一个公式就是:actionName!methodName.action

如果通过user.action方式进行调用,此时应该调用UserAction的execute()方法。没有那就等着报错!
上述方式在配置Action的时候就是配置struts.xml的时候,有的版本需要加上这样一句配置

<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>第二种方式使用method属性来实现
同上同样是那个UserAction,同样当中有两个方法

配置struts.xml的写法



通过不同的action的名字(name属性)来调用就可以了

第三种通配符

<action name="*Dynamic" class="com.action.packages.UserAction" method="{1}">
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="{1}_success">WEB-INF/pages/{1}_success.jsp</result>
<result name="error">WEB-INF/pages/error.jsp</result>
</action>如果访问register方法:
<form action="registerDynamic.action">
用户名:<input type="text" name="username"/><br/><br/>
密  码:<input type="password" name="password"/><br/><br/>
确认密码:<input type="password" name="repassword"/><br/><br/>
<input type="submit" value="提交"/>  <input type="reset" value="重置"/>
</form>看到没有register占用了星号,这个时候标记为{1}的地方都会替换为register,如果是login也是同理的。替换过后你就可以明白谁调用谁,然后该往哪个页面跳了吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: