Struts2——自定义类型转换器(局部和全局)

1、局部:先定义一个类(例如DateTypeConverter.java),这个类要继承DefaultTypeConverter;在Action包下定义一个局部配置文件(文件名有格式要求:Action类名-conversion.properties,例如HelloWorldAction-conversion.properties);代码略。
2、全局:同上,只需要把配置文件放置在src目录下,并改变文件名(文件名有格式要求:一定为xwork-conversion.properties);代码如下(举例):
java.util.Date=com.huhui.type.converter.DateTypeConverter

由于内容少也比较简单,故此再讲解一下如何访问或添加request/session/application属性。

1、通过ActionContext访问或添加(使用范围)request/session/application属性,代码如下:
public String execute(){
ActionContext ac=new ActionContext.getContext();
ac.getApplication().put(“app”,”应用范围”);//往ServletContext里放入app
ac.getSession().put(“ses”,”session范围”);//往session里放入ses
ac.put(“req”,”request范围”);//往request里放入req
return “message”;
}
在JSP文件中显示出来:代码如下:
<body>
${applicationScope.app } <br>
${sessionScope.ses } <br>
${requesScope.req } <br>
</body>

2、获取HttpServletRequest/HttpSession/servletContext/HttpServletResponse对象(使用范围),有两个方法:
A、 通过ServletActionContext类直接获取(推荐使用),代码如下:
public String rsa() throws Exception{
HttpServletRequest request=ServletActionContext.getRequest();
ServletContext servletContext=ServletActionContext.getServletContext();
Request.setAttribute(“req”,”请求范围属性”);
request.getSession().setAttribute(“ses”,”会话范围属性”);
servletContext. setAttribute(“app”,”应用范围属性”);
//HttpServletResponse response= ServletActionContext.getResponse();
return “message”;
}//获得这些对象后可通过setAttribute()方法设置属性
B、 实现指定接口,由struts框架运行时注入,代码如下:
public class HelloWorldAction implements ServletRequestAware,ServletResponseAware,ServletContextAware{
private HttpServletRequest request;
private ServletContext servletContext;
private HttpServletResponse response;
……//各属性的setter()方法
}

猜你喜欢

转载自javahuhui.iteye.com/blog/1479435