失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java struts xml文件设置----自定义日期转换器(局部 及全局类型转换器类)

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

时间:2019-05-08 07:40:46

相关推荐

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 .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

* 要转换为的目标类型

*/

@Overridepublic Object convertFromString(Map context, String[] values, Class toclass) {// TODO Auto-generated method stubif(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 blocke.printStackTrace();}}return null;}@Overridepublic String convertToString(Map arg0, Object arg1) {// TODO Auto-generated method stubreturn 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""/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""/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""/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>

如果觉得《java struts xml文件设置----自定义日期转换器(局部 及全局类型转换器类)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。