Struts2中调用Action的方法

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也是同理的。替换过后你就可以明白谁调用谁,然后该往哪个页面跳了吧。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值