Action
实现一个Action的最常用方式:从ActionSupport继承
调用Action
l 通配符调用action
<action name="index_*" class="daiwei.struts.action.StrutsDemo" method="userStar">
<result>/action/index.jsp</result>
</action>
上述通配符可以调用所有以”index_”为开头的URL
若想使用通配符控制调用方法,使用如下:
<action name="index-*" class="daiwei.struts.action.StrutsDemo" method="{1}">
<result>/action/index.jsp</result>
</action>
该模式下,若调用格式为struts/index-add,则调用的方法为StrutsDemo.add()
l 动态调用
<action name="index" class="daiwei.struts.action.StrutsDemo">
<result name="success">/action/index.jsp</result>
</action>
在改配置下,其中Action 类StrutsDemo中有方法:execute()和add()
若不想使用默认的execute()方法,可以使用动态调用模式,调用方式如下:
Struts/index!add
参数传递
l 单个简单参数
1. 在Action中加入该参数,并实现set,get方法。
代码见daiwei.struts.action.UserAction
2. 在页面中调用
http://localhost:8080/struts2/action/myUser?mes=es
l 单个对象参数
一般模式
1. 在action中加入该对象,并实现set,get方法法
代码见daiwei.struts.action.UserAction
http://localhost:8080/struts2/action/myUser?user.name=admin
ModelDriven模式
1. 在action中加入对象,并实现ModelDriven接口,重写getModel()方法
代码见daiwei.struts.action.UserActionDriven
2. 在页面中调用
http://localhost:8080/struts2/action/userDriven?name=admin
l Request, Session, Application
Map类型的上述三种
1. 依赖于容器(Struts2)
见代码daiwei.struts.action.LoginAction1
2. IOC(最常用)
见代码daiwei.struts.action.LoginAction2
原始类型的上述三种
1. 依赖于容器(Struts2)
见代码daiwei.struts.action.LoginAction3
2. IOC
见代码daiwei.struts.action.LoginAction4
l 参数验证addFieldError
代码见daiwei.struts.action.UserAction
代码下载链接:http://download.youkuaiyun.com/detail/u011672579/9545505