- 浏览: 11314 次
- 性别:
- 来自: 北京
最新评论
-
doc_886:
doc_886 写道doc_886 写道不是续到现在也还没有续 ...
Struts2 拦截器 -
doc_886:
doc_886 写道不是续到现在也还没有续完吧???
Struts2 拦截器 -
doc_886:
不是续到现在也还没有续完吧???
Struts2 拦截器
文章列表
Spring Abstract Oriented Programing(面向抽象编程)
好处:解耦,更加灵活。
待续。。。
Struts2 的核心是 拦截器(Interceptor)。
对客户端的请求经过多个拦截器的处理,
然后执行请求的 Action,
执行完 Action后,经过拦截器的处理,将结果返回 jsp页面。
待续。。。
Struts2标签:
property、set、bean、fielderror、ifelse、iterator 、ui标签
$ # % 的区别:
a. $用于i18n和struts配置文件
b. #用来取ActionContext的值
c. %将原来的文本属性解析为ognl,对于本来就是ognl的属性没有影响
<s:property /> <s:include />
jsp部分样例代码:
<ol>
<li>property: <s:property value="user.username"/> ...
OGNL(Object-Graph Navigation Language) 对象图形导航语言
自定义Action中有一个成员变量User user,可以自己new,Private User user = new User().
也可以在url地址中传递user.xx,但是这时在User中必须有一个无参的构造方法。
jsp中样例代码:
<li><s:property value="cat.dog.name"/></li> <br />
<li><s:property value=" ...
<global-results>
<result name="otherPage">/other.jsp</result>
</global-results>
作为公用的页面跳转,不用每一个action都配置。
Struts.xml result type 四种类型
1.dispathcer(默认)
2.redirect(客户端跳转)
3.chain(服务器端跳转)
4.redirectAction
待续。。。
1.用Action属性接收参数
在url中写上name=aaa&age=26
在对应的Action中声明俩个成员变量name 和 age,定义两个变量的get 和 set方法。这样即可。
2.用领域模型(Domain Model)来接受参数
在url中写上user.name=aaa&user.age=26
在对应的Action中声明成员变量private User user;定义user的get 和 set方法。这样即可。
3.自定义的Action实现ModelDriven接口(实现其getModel()方法)
在url中写上name=aaa&age=26
在对应的A ...
动态方法调用DMI(Dynamic Method Invocation)
使用通配符
待续。。。
具体视图的返回可以由自己定义的Action来决定。
1)、具体的Action可以是一个普通的java类,其中定义一个public String execute()方法即可。
2)、实现com.opensymphony.xwork2.Action接口。
3)、常用的做法是从com.opensymphony.xwork2.ActionSupport继承,好处是可以用ActionSupport封装好的方法。
Struts.xml文件中:
<package name="default" namespace="" extends="struts-default">
<action name="hello">
<result>
/Hello.jsp
</result>
</action>
</package>
Namespace的值对应访问action的路径,若namespace为/, /aaa, /aaa/bbb,则对应的action访问路 ...
Struts2工作原理
1、在浏览器url输入:http://localhost:8080/webApp/hello.action;
通过http协议向tomcat发送请求
2、Tomcat接收到请求后,首先会分析出请求的时哪个webApp,然后找到对应的webApp,找到对应的webApp的web.xml,执行org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter的doFilter方法,StrutsPrepareAndExecuteFilter会参照struts.xml,找到相应的namespace,找到对应 ...