• java struts xml文件设置----自定义日期转换器(局部,及全局类型转换器类)


    struts转换器API

    typeconverter转换器接口---- defaulttypeconverter 默认类型转换器类----- strutstypeconverter用户编写的转换器类,继承此类即可

    转换器开发步骤:

    1.写转换器类

    2.配置转换器类(告诉struts应用自己的转换器类)

        ---》在同包的action目录下,新建一个properties文件

        ---》 命名规则:actionclassname-conversion.properties

                

    自定义转换器配置文件   一定要放在action.java 同一个包下  同一个目录下

                           命名方式: action名字+ “-conversion.properties”    

    总结:该拦截器负责对错误信息进行拦截 <interceptor name="conversionerror" class="org.apache.struts2 interceptor.strutsconversionerrorinterceptor">

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

    全局类型转换器类

    需要写一个转换器,给所有action用

    配置全局类型转换器

              ---》src/xwork-conversion.properties

              ------》内容

                         Java.util.Date=转换器类(cn.itcast.d_type.myconverter)

     全局类型转换器创建步骤:1.在项目src下    新建 xwork-conversion.properties     内容 :Java.util.Date=cn.itcast.d_type.myconverter       //意思是将遇到所有的日期类都按自定义转换器类进行转换

    useraction-conversion.properties:

    user.birth=cn.itcast.d_type.myconverter

    自定义日期转换器:   必须继承 StrutsTypeConverter     重写:convertFromString 或  convertToString

    myconverter.java

    package cn.itcast.d_type;
    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Map;
    
    import org.apache.struts2.util.StrutsTypeConverter;
    
    import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;
    
    public class myconverter  extends StrutsTypeConverter {
        DateFormat[] df={new SimpleDateFormat("yyyy-MM-dd"),
                new SimpleDateFormat("yyyyMMdd"),
                new SimpleDateFormat("yyyy年MM月dd日")};
    

    /**
    * 把String转换为指定的类型 【String To Date】
    *
    * @param context
    * 当前上下文环境
    * @param values
    * jsp表单提交的字符串的值
    * @param toClass
    * 要转换为的目标类型
    */

    
        @Override
        public Object convertFromString(Map context, String[] values, Class toclass) {
            // TODO Auto-generated method stub
            if(values==null || values.length==0){
                return null;
            }
            if(Date.class!=toclass){
                return null;
            }
            for(int i=0;i<df.length;i++){
                
                try {
    // 迭代:转换失败继续下一个格式的转换; 转换成功就直接返回
    return df[i].parse(values[0]); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return null; } @Override public String convertToString(Map arg0, Object arg1) { // TODO Auto-generated method stub return null; } }

    user.java

    package cn.itcast.d_type;
    
    import java.util.Date;
    
    public class user {
    private  String name;
    private String pwd;
    private int age;
    private Date birth;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    
    }

    useraction.java

    public class useraction {
    
    /**    private String name;
        private String pwd;
        private  int  age;
        private Date  birth;
        public  void setName(String name){
            this.name=name;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void setBirth(Date birth) {
            this.birth = birth;
        }
    */
        
        private user user;
        //必须要有getusr方法
    public user getUser() {
        return user;
    }
    
    public void setUser(user user) {
        this.user = user;
    }
    
    public  String register(){
            
                System.out.println(user.getName());
                System.out.println(user.getPwd());
                System.out.println(user.getAge());
                System.out.println(user.getBirth());
            
            
            return "success";
        }
        
        
        
    }

    同一包名下:cn.itcast.d_type

    user.java  --- 实体类      myconverter.java ----- 自定义转换器   , useraction.java  ------处理器  ,  useraction-conversion.properties ----自定义转换器配置信息        

    config.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
    <package name="config" namespace="/" extends="struts-default"   abstract="false">  //标准格式  
    
    <action name="user_*"  class="cn.itcast.d_type.useraction"  method="{1}">
    <result name="success"> /index.jsp</result>
    </action>
    
    </package>
    
    
    </struts>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

    如果没有该dtd约束语句,会造成 404错误 找不到指定访问的浏览页面



    struts.xml ---- 总配置文档    

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
    
        <!-- 总配置文件:引入其他所有配置文件 -->
        
        
        <include file="cn/itcast/d_type/config.xml"></include>
        
    </struts>

    web--root:  register.jsp

      <body>
          <form action="${pageContext.request.contextPath }/user_register.action" method="post">
              用户名:<input type="text" name="user.name"><br/>
              密码:<input type="text" name="user.pwd"><br/>
              年龄:<input type="text" name="user.age"><br/>
              生日:<input type="text" name="user.birth"><br/>
              
              <input type="submit" value="注册">
          </form>
      </body>
  • 相关阅读:
    Mysql 交集、并集、差集、行转列、列转行
    Scala隐式转换
    ES添加elasticsearch-sql插件
    ES添加elasticsearch-analysis-ik分词器
    ES添加Head插件
    ES操作详解
    ES集群安装
    Scala上下界以及比较器Ordered
    Java对象比较
    解方程(来自学长的“遗产”)
  • 原文地址:https://www.cnblogs.com/yimian/p/7508886.html
Copyright © 2020-2023  润新知