Struts2入门基础之action详解(五)

本文介绍Struts2框架中Action的动态方法调用及通配符使用,包括默认方法execute的替代方案,以及如何通过配置实现动态方法选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Strut2action有默认的方法execute来执行我们的操作,对于我们的应用很不方便,在这里我们来说一下struts2action的动态调用和通配符的使用方法。

首先我们来看一下默认的执行方法的调用。以用户登录为例。在这里提供一个login.jsp页面,代码如下:

<form action="login" method="post">
			帐号
			<input type="text" name="name">
			<br />
			密码
			<input type="password" name="password">
			<br />
			<input type="submit" value="提交">
		</form>

在action中进行登录的判断,属性值通过set和get方法获得

public class LoginAction extends ActionSupport {
	private String name;// 帐号
	private String password;// 密码

	// 主方法
	public String execute() {
		// 如何匹配就返回成功页面
		if ("hello".equals(name) && "123".equals(password)) {
			return "success";
		} else {
			return "fail";// 失败返回登录页面
		}
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}


struts.xml的配置文件

<struts>
	<package name="default" namespace="/test" extends="/struts-default">
		<action name="login" class="cn.test.action.TestAction" method="boologin">
			<result name="hello">/result.jsp</result>
		</action>
	</package>
</struts> 

默认的执行action的方法在struts.xml的配置文件中可以编写method的属性值。

动态调用Action的方法

在动态调用action的方法时,form表单的action的必须改成配置文件中action名称!方法名,代表的是执行action中的那一个方法,代码如下:

               <form action="login!boologin" method="post">
			帐号
			<input type="text" name="name">
			<br />
			密码
			<input type="password" name="password">
			<br />
			<input type="submit" value="提交">
		</form>

Action类中存在的两个方法分别为execute和boologn,代码如下(set和get方法)在这里面的两个方法都是对登录的验证,代码如下:

public class LoginAction extends ActionSupport {
	private String name;// 帐号
	private String password;// 密码

	// 主方法
	public String execute() {
		// 如何匹配就返回成功页面
		if ("hello".equals(name) && "123".equals(password)) {
			return "success";
		} else {
			return "fail";// 失败返回登录页面
		}
	}
	public String boologin() {
		// 如何匹配就返回成功页面
		if ("hello".equals(name) && "123".equals(password)) {
			return "success";
		} else {
			return "fail";// 失败返回登录页面
		}
	}
     }

struts.xml的配置如下

<struts>
	<package name="default" namespace="/test" extends="/struts-default">
		<action name="login" class="cn.test.action.TestAction" method="boologin">
			<result name="hello">/result.jsp</result>
		</action>
	</package>
</struts>    

从struts.xml的配置文件中我们可以发现如果Action有很多的方法,那么我们必须配置多个action这样显得页面的繁琐和不利于代码的利用,所以STRUTSz中提供了通配符的调用方法。

通配符调用Action方法

使用通配符的方法调用action的方法,form表单的action为*_*,*代表的是你要使用的那个action,第二个*代表的是你调用action的那个方法,在登录的例子中,form表单的设置如下;

		<form action="login_boologin" method="post">
			帐号
			<input type="text" name="name">
			<br />
			密码
			<input type="password" name="password">
			<br />
			<input type="submit" value="提交">
		</form>

在Action类中的不变,只是在struts.xml的配置更改如下:

<struts>
	<package name="default" namespace="/test" extends="/struts-default">
		<action name="login_*" class="cn.test.action.TestAction" method="{1}">
			<result name="hello">/result.jsp</result>
		</action>
	</package>
</struts>  

这是sruts2中action的调用的两种方法,需要注意的是在通配符调用action的方法在struts.xml的配置文件的设置,特别是*_*代表的是含义。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值