一.struts2的进阶配置
1.常量配置:
配置方式一:在struts.xml中配置
配置方式二:在src下创建struts.properties
配置方式三:在项目的web.xml中配置
值得注意的是,配置文件的加载顺序为,后面的配置会覆盖掉前面的配置。
最重要,最经常使用的三个常量配置。
2.动态方法调用的配置。
方式一.在常量配置中配置
方式二,也是较为常用的一种,在struts.xml中action元素的属性中配置
3.struts2中的默认配置。
4.结果跳转方式的配置。
a.转发,使用dispatcher
b.重定向,使用redirect
c.转发到action,chain
4.重定向到action,redirectaction
5.全局结果页面配置
全局结果页面是指在同一个包下的所有action,若返回相同的字符,都可以跳转到这个页面。
具体配置使用<global-results>
二.向页面设置参数的方法。(获取servlet的API的方法)
1.通过actionContext
actionContext是action执行时的上下文条件,保存了action执行过程中所需要的对象,包括了parameters,request
session,application.常用的API如下。
具体使用方法如下
ActionContext context=ActionContext.getContext();
context.put("name","crc");//request域
context.getApplication().put("name","crc");//获得application域 context.getSession().put("name","crc");//获得session域
2.通过特定的接口访问。
上一种方法通过ActionContext访问servlet的API,不能获得API的实例。为了在action中直接访问servlet的API。struts2HIA提供了一系列接口。其中几个比较重要的如下。
a.ServletRequestAware:Action可以直接访问web中的HttpServletRequest对象。
b.ServletResponseAware:Action可以直接访问web中的HttpServletResponse对象。
c.SessionAware:Action可以直接访问web中的HttpSession对象。
d.ServletContextAware:Action可以直接访问ServletCotext对象。
使用方法:实现对应的接口--实现set方法--在set方法中获取相应的对象。
3.通过ServletActionContext访问(ServletActionContext与ActionContext的区别请看:http://blog.youkuaiyun.com/woshixuye/article/details/8172777)
通过调用ServletActionContext中几个常用的静态方法来获取servlet对象。
a.static HttpServletRequest getRequest();
b.static HttpServletResponse.getResponse();
c.static ServletContext.getServletContext();
d.static PageContext.getPageContext();
三.从表单中获取参数的方法
1.属性驱动的方式。
在action直接定义java中基本数据类型的字段,作为action的属性,特别注意,这些字段的名称要和表单数据完全一致。
这种方法要在action定义较多的属性,不太方便,于是有了第二种方式,对象驱动。
2.对象驱动方式。
与属性驱动方式的思路一致,但是把繁杂的属性属性抽取成一个javabean对象,这个javabean对象还可以被多个action复用。
注意,此种方法必须提供对象的get方法,否则无法获得数据。以此同时,表单的书写也需要改变。
3.模型驱动方式
这种方式要求实现ModelDriven接口来接收请求参数,并且重写getModel()这个方法,在这个方法中返回action中使用的
数据模型对象,此时表单的写法也比较简单,也不用写太多的类内属性。
四.总结
struts2的进阶配置可以帮助开发者更好的使用struts2,而struts2的参数封装参数方式比较多样,
在实际开发中选一种自己比较熟悉的即可。
作者邮箱:1419156712@qq.com
有问题可联系。
本文详细介绍了Struts2框架的进阶配置方法,包括常量配置、动态方法调用配置、默认配置等;同时讲解了如何设置页面参数及从表单中获取参数的不同方式。
1070

被折叠的 条评论
为什么被折叠?



