struts2 备忘录

来源:互联网 发布:淘宝新店装修教程 编辑:程序博客网 时间:2024/06/06 18:08

1.动态访问调用(DMI):

1)一个Action多个处理逻辑的被访问的实现方法之一

2)访问时url形式为:actionName ! methodName.action  (actionName 是struts.xml中action元素的name属性)

3)必须设置常量来开启DMI  :  struts.enable.DynamicMethodInvocation=true

4)对于使用动态方法调用的方法,例如regist方法,该方法的方法声明与系统默认的execute方法的方法声明只有方法名不同,其它的方法参数、返回值类型都应该绝对相同;

2.一个Action多个处理逻辑的被访问的实现方法之二——指定<action/>的method属性:

<action name="login" class="UserAction" method="login"/>

<action name="regist" class="UserAction" method="login"/>

url:login.action 或者 regist.action

3.一个Action多个处理逻辑的被访问的实现方法之三——指定<action/>的method属性,并使用通配符:

<action name= "*Action" class="UserAction" method="{1}"/>

{1}这个表示:name属性中第一个“星号”的值,因为只有一个星号,故若为loginAction,则调用UserAction的login方法;若为registAction,则调用UserAction的regist方法;

<action name= "*_*" class="{2}" method="{1}"/>

若URL为login_UserAction.action,则匹配上面的表达式,表示用UserAction类的login方法处理这个URL

4.struts2-core-2.1.6.jar中两个重要文件,struts-default.xml  和org\apache\struts2\下的常量默认值文件:default.properties

5.类似于struts1的ActionForm功能(只封装界面参数),struts2需要使用模型驱动,实现用实体类封装界面参数和返回处理结果;

详细:

1)封装界面参数: User.java(属性有:username、password、tip)

2)Action类:

public class UserAction extends ActionSupport implements ModelDriven<User>{private User model = new User();//必须提供public User getModel(){//必须实现的方法return model;}......}