Action的生命周期及调用非execute方法

1、action的生命周期:Struts2中的Action在每一次web请求的时候都要新建一个实例。
2、调用非execute方法
1:配置方式调用
首先要在Action中实现要被调用的方法,这些方法的签名要求除了名字和execute不一样外,其他均应一样,也就是说,这些方法的定义要满足如下要求:
可见性为public
不需要传入参数
返回一个字符串,其实就是指示的下一个页面的result。
可以抛出Exception,当然也可以不抛例外
假设现在要实现新增的功能,可以在Action中定义一个create方法,示例如下:

public String create() throws Exception{  
    System.out.println("现在执行create的处理");  
    return "toWelcome";  

然后修改struts.xml中的配置,在< action>定义里面,添加一个method属性的配置,method属性是用来指示一个Action中的方法,这个方法会在执行Action的时候执行,也就是说,你配置了method属性,Action运行的时候会执行这个方法而不是execute方法,示例代码如下:

name="helloworldAction" class="cn.javass.action.action.HelloWorldAction" method="create">  
            <result name="toWelcome">/s2impl/welcome.jspresult>  
            <result name="input">/s2impl/login.jspresult>  
 

2:在请求的URL中直接指定的方式
还可以直接在请求的URL中指定要访问的方法,使用这种方法,在Action中还是要按照上面的方式来添加需要被访问的方法,但是struts.xml配置中,就不需要为< action>元素配置method属性了。
在访问的URL上,在action名后直接加上感叹号!和方法名,例如:

"/helloworld/helloworldAction!create.action" method="post"> type="hidden" name="submitFlag" value="login"/> 账号:type="text" name="account">
密码:type="password" name="password">
type="submit" value="提交">

你可能感兴趣的:(Struts2)