zoukankan      html  css  js  c++  java
  • struts2类型转换

    struts2里面不使用ActionForm来接收参数,而是在Action中定义一个与请求参数同名的属性就能接收到表单中的参数。jsp页面上通过el表达式来取得Action中属性的值。

    如果在一个类中包含了另一个类作为参数,那么在form表单中定义属性名称的时候就需要使用对象来指定了,比如form中的input的name为Person.id,在el中也要使用Person.id获取数据。

    struts2中有两种类型转换器:

    1,局部类型转换器:

    定义类型转换器:

    package control.center;

    import java.sql.Date;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Map;

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

    public class TypeConvert extends DefaultTypeConverter {

     /**
      *
      * value:表示获取的值
      * toType:表示转换的类型
      *
      */
     public Object convertValue(Map<String, Object> context, Object value,
       Class toType) {
             
      SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
       try {
       if(toType==Date.class)
       {
        String[] params=(String[])value;
        return dateFormat.parse(params[0]);
       }else if(toType==String.class)
       {
         Date date=(Date)value;
         return dateFormat.format(date);
       }
      
       } catch (ParseException e) {
               e.printStackTrace();
      }
       return null;
     }

    }

    注册局部类型转换器:

    假如需要转换数据类型的Action为HelloWorldAction,那么创建类型转换配置文件HelloWorldAction-convertion.properties,配置文件中的文本:

    birthday=com.type.DateTypeConver

    其中birthday为Action中需要转换的属性,DateTypeConver为转换器

    全局类型转换:

    只要将局部类型转换器的名称改为xwork-convertion.properties,并将该文件放置在src目录下。配置文件中的文本:

    birthday=com.type.DateTypeConver

  • 相关阅读:
    部署阿里云服务器流程小结
    爬虫中代理的设置问题介绍
    简析 __init__、__new__、__call__ 方法
    Python3.* 和Python2.*的区别
    解决k8s svcat ServiceInstance 删除不掉问题
    k8s dashboard部署,使用traefik暴露问题记录
    python中all函数得用法
    使用Hexo+github搭建个人博客大坑
    使用scrapy爬取百度招聘
    还是爬虫,使用的是selenium,爬取的是智联,爬取速度灰常慢...
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1963330.html
Copyright © 2011-2022 走看看