Action的类型转换器

类型转换器

局部类型转换器 对某个Action

全局类型转换器 所有Action的某个类型起作用


com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;


public class DateTypeConverter extends DefaultTypeConverter{
   public Object convertValue(Map<String,Object> context,Object value, Class toType)
   {
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
         try
         {
             if(tpType==Date.Class){//当字符串向Date雷翔转换时
                  String[] params=(String[]) Value; //Request.getParameterValues()
              }
         }
           return super.convertValue(context,Value,toType);
   }
}

HelloWorldAction-conversion.properties
局部类型转换器:
第一步:定义一个类型转换器 继承这个类DefaultTypeCOnverter后重写这个方法
第二部:注册 仅仅对Action中的属性进行转换就注册一个局部类型转换器 取名规则 要转换的Action的类名加-conversion.properties固定写法
内容当然是固定的属性类型 如Action中的属性 private Date birthday; 那么属性文件中就 birthday=cn.itcast.type.converter.DateTypeConverter 即包名.类名 
全局类型转换器:
第一步:定义一个类型转换器
在WEB-INF/classes下放置xwork-conversion.properties文件.
文件中的内容为:
待转换的类型=类型转换器的全类名

===========================================================================================================

访问或添加request/session/application属性

ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app","应用范围");//往ServletContext里放入app
ctx.getSession().put("ses","session范围");//往session里放入ses
ctx.put("req","request范围");//往request里放入req
ctx.put("names",Arrays.asList("老张","老黎","老方"));
return "message";


HttpServletRequest request = ServletActionContext.getRequest();
ServletContext servletContext = ServletActionContext.getServletContext();
request.setAttribute("req","请求范围属性");
request.getSession().setAttribute("ses","会话范围属性");
servletContext.setAttribute("app","应用范围属性");


前台页面取值
${applicationScope.app}
${sessionScope.ses}
${requestScope.req}
获取HttpServletRequest / HttpSession /ServletContext/ HttpServletResponse对象

方法一:通过ServletActionContext类直接获取

方法二:实现指定接口,有struts框架运行时注入:


在学习一下 如何加JSTL标签 Jar包
在下载的opensoftlib文件下struts-1.3.8-lib下找jstl.jar和standard.jar版本是1.1版本拷贝到项目的lib下
在页面上引入JSTL标签 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>1.1版本
页面呈现的迭代方式
<c:forEach items="${names}" var="name">
    ${name} <br/>
</c:froEach>

ognl标签可以不学习 但是表单标签要做数据回显通过EL表达式也可以做 主要还是学习表单标签


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值