`
Javahuhui
  • 浏览: 82516 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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()方法
}
分享到:
评论

相关推荐

    自定义类型转换器

    Struts2框架提供了一种灵活的方式来实现这种类型的转换——即通过自定义类型转换器(Type Converters)。本文档将详细介绍如何在Java中自定义类型转换器,并通过一个具体的例子来演示其使用方法。 #### 二、局部...

    struts2注册转换器

    1. **创建自定义转换器类**:继承`org.apache.struts2.util.FieldAwareConverter`或者直接实现`Converter`接口。在这个例子中,我们可能会创建一个名为`CustomDateConverter`的类,该类负责将字符串"20110202"转换为...

    struts2学习笔记!

    - 在某些情况下,可能需要自定义类型转换器来处理特定类型的转换。 - **示例**:假设我们需要创建一个`HelloAction`类,并且需要一个转换器`HelloConverter`。 - 创建`HelloAction`类,并在`HelloAction.conversion...

    传智播客ibatis教程_ibatis优点总结

    开发者可以自定义缓存策略,根据需求实现局部或全局的缓存。 6. **良好的扩展性**:iBATIS允许开发者通过插件进行扩展,例如,可以通过拦截器实现日志记录、性能监控等功能。 7. **与各种数据库兼容**:iBATIS不...

Global site tag (gtag.js) - Google Analytics