Action总结:
1.实现一个Action的最常用方式:从ActionSupport继承权
2.DMI动态调用!
3.通配符配置*{1}{2}……
4.接收参数的方法(一般用属性或者DomainModel来接收)
5.简单参数验证addFieldError
一般不使用Struts2的UI标簦
6.访问WEB元素
7.包含文件配置
8.默认action处理
一、路径问题
struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。
统一使用绝对路径(即在jsp中用request.getContextRoot方式来拿到webapp的路径,或用myeclipse经常用到的,指定basePath)
<%
String path = request.getContextPath();
String basePath = request.getScheme+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
可以在<head><base href="<%=basepath%>"></base></head> //表示面面中所有的链接前面都会加上base地址
或直接<a href="<%=basepath%>index.jsp"></a>
二、actionMethod
Action执行的时候并不一定要执行excute方法
可以在配置文件中配置Action的时候用method=来指定执行哪个方法,也可以在url地址中动态指定动态方法DMI(命名空间/action名!方法名.action)
三、通配符wildCard
在struts.xml的name、class、method属性,*-*,{1}代表前一个*,{2}代表后一个*。中间的分隔符可以有其他的。
四、传参:
三种方式--
Result总结:
1.常用四种类型:
a) dispatcher(默认) b)redirect c)chain d)redirectAction
2.全局结果集
a) global-results | extends
3.动态结果(了解)
a) 在action中保存了一个属性,存储具体的结果location
4.传递参数:
a) 客户端跳转才需要传递 b) ${}表达式(不是el)
五、ResultType
eg.<result type="dispatcher"></result>
默认为dispatcher,它是运用服务器跳转,跳转到页面;
redirect,跳转到视图,不能跳转到action;
chain,跳转,但是跳转到action;
redirectAction,客户端跳转,跳转到action。
六、GlobalResult
作用:可以定义一个其他action也可以用的结果集,尤其是当一个包中有多个action时。
eg.<global-results>
<result name="mainPage">/main.jsp</result>
</global-results>
<package name="" extends="struts-default">
extends默认为struts-default;
extends写其他时为继承另外包,可用其他包的result。
七、DynamicResult
<result>${r}</result> //r中存的是一个字符串,专门用在struts配置中的og表达式
八、ResultWithParam
在页面上:<s:property value="#parameters.t"></s:property> //取actionContext中的值