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

    url中传递的参数都是字符串,struts2自动进行简单的类型转换,但是当转换成特殊的类型时,struts往往不能很好进行转换。

    java.util.Date类型:

      可以在actiong的结果jsp中写<s:date name="birthday" format="yyyy-mm-dd"/>

      然后action中定义个Date类型的属性birthday,当访问...action?birthday?birthday=1993-01-01时jsp中的标签就会输出1993-01-01.

    List类型:

      有时候我们可能需要接受一个参数,这个参数可能有多个值,比如表单中的多选框。这时后台可以用list来接收。

    Ponit类型:

      这时候需要自定义一个类型转换器:

    package cn.orlion.converter;
    
    import java.awt.Point;
    
    import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
    
    public class MyPointConverter extends DefaultTypeConverter{
        
        public Object converterValue(Object value , Class toType){
            
            if (Point.class == toType) {
                Point p = new Point();
                String[] str = (String[])value;
                String[] xy = str[0].split(",");
                
                p.x = Integer.parseInt(xy[0]);
                p.y = Integer.parseInt(xy[1]);
                return p;
            }
            
            return super.convertValue(value , toType);
        }
    }

    下一步就是要绑定到struts2中,如果值绑定给用到的action只需要在该action的包下新建一个文件:DemoAction-conversion.properties,内容为p=cn.orlion.converter.MyPointConverter。其中DemoAction为action的名字(根据实际取名)p为action中定义的Point类型的属性名(private Point p;)cn.orlion.converter.MyPointConverter为转换器类名

    如果要注册为全局的则需要在src目录下创建一个文件:xwork-conversion.properties内容为:java.awt.Point=cn.orlion.converter.MyPointConverter。

  • 相关阅读:
    CentOS 7 调整home大小
    跨站请求拦截
    SVN操作
    openoffice安装
    MySQL报错ERROR 1436 (HY000): Thread stack overrun:
    jolokia配置Java监控
    elasticksearch分词,导致kibana的url出现问题
    C语言scanf跳出循环的问题
    Jenkins远程代码执行漏洞
    ActiveMQ FileServer漏洞(详细)
  • 原文地址:https://www.cnblogs.com/orlion/p/5034528.html
Copyright © 2011-2022 走看看