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

来源:互联网 发布:淘宝网3元优惠券图片 编辑:程序博客网 时间:2024/06/01 19:06
          

         在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的配置文件的设置,特别是*_*代表的是含义。




 

原创粉丝点击