Struts学习之类型转换
* 从页面中获取对应的内容
* 在动作类action中,声明与页面中表单name属性的值同名的属性
* 提供get和set方法
* struts2框架就会通过反射机制,从页面中获取对应的内容
* struts2框架不能把页面中获取到的字符串类型转换成任何类型
* 当struts2框架不能把页面中获取到的字符串类型进行转换时,就需要自定义类型转换器
* 自定义类型转换器:
* 要么实现TypeConverter接口或者继承TypeConverter接口的某个实现类,我们继承DefaultTypeConverter类
* 重写convertValue(Object value, Class toType){}方法
* 参数"value":要转换的值
* 参数"toType":要转换的类型
* 具体代码实现:
if(value==null){
return false;
}
if(toType==null){
return false;
}
if(toType!=java.util.Date.class){
return false;
}
if(value instanceof java.lang.String[]){
String [] str = (String[])value;
if(str[0]!=null&&str[0].length()>0){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
return sdf.parse(str[0]);
} catch (ParseException e) {
/*
* 在struts2框架里,自定义的类型转换器,
* 如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。
* 所以框架就会认为类型转换器转换成功,转向成功页面。
*/
throw new RuntimeException(e);
}
}
}
* 两种注册方式:
* 基于字段的(局部)
* 在动作类action同目录下,创建一个名为"UserAction-conversion.properties"的资源文件
* UserAction为动作类action的名称
* "-conversion.properties"是固定写法
* 其内容配置如下:
createTime=cn.swust.converter.DateConverter(字段名=自定义转换器的完整类名)
* 基于类的(全局)
* 在src目录下,创建一个名为"xwork-conversion.properties"的资源文件
* 该资源文件的名称是固定的
* 其内容配置如下:
java.util.Date=cn.swust.converter.DateConverter
* 如果在页面中输入一个不正确的值的时候,不手动抛出异常,页面依然转向成功页面
/*
* 在struts2框架里,自定义的类型转换器,
* 如果我们不手动抛出异常,struts2框架只捕获异常,但是并不抛出。
* 所以框架就会认为类型转换器转换成功,转向成功页面。
*/
* 配置修改错误提示信息为中文
* 在动作类action同目录下,创建一个名为"converter.properties"的资源文件
* 该资源文件配置如下:
* 针对所有字段:
xwork.default.invalid.fieldvalue=类型转换失败 "{0}".
* 针对某个字段:
invalid.fieldvalue.createTime=出生日期转换失败
* 在struts.xml文件进行配置:
<constant name="struts.custom.i18n.resources"
value="cn.swust.converter.converter">
</constant>
Struts学习之类型转换的更多相关文章
- Struts学习总结-02 类型转换
一 类型转换 input.jsp <%@ page language="java" import="java.util.*" pageEncoding=& ...
- Struts学习总结 学习
ContextMap 包含值栈包含 root(list结构)和context(map结构) 值栈包含contextMap的引用. Actioncontext是工具类 可以获取他们 Struts2拥 ...
- struts 学习
1.在Struts2的Action中取得请求参数值的几种方法 public class GetRequestParameterAction extends ActionSupport { privat ...
- struts 学习之问一
今天在进行struts全局类型和局部类型转换时,发现一个问题,如下: 当输入一个点的坐标时,我使用全局转换提示错误,找不到类,当改变成局部类型转换时,可以成功转换,不知道这个是什么原因,难道全局不可以 ...
- java struts2入门学习---自定义类型转换
自定义类型转换器的作用就是将struts无法识别的类型转换成自己所需要的. 比如输入:广东-东莞-虎门,对应的输出时能输出:广东省 东莞市 虎门(镇/区) 这里涉及到的知识点即是将String转换为任 ...
- Mybatis源码学习之类型转换(四)
简述 JDBC数据类型与Java语言中的数据类型并不是完全对应的,所以在PreparedStatement为SQL语句绑定参数时,需要从Java类型转换成JDBC类型,而从结果集中获取数据时,则需要从 ...
- mzy,struts学习(一)
大家都在讲struts已经过时了,现在都是前后台分离,没有必要去学一个淘汰的框架,但是怎么讲呢?我觉得,struts能够流行那么多年,肯定有它的原因,肯定有很多优秀和好的地方,有一个指导过我的人给我讲 ...
- struts学习
1.集成tomcat到eclipse http://www.eclipsetotale.com/tomcatPlugin.html 下载最新的plug后,解压.解压后的文件放到eclipse的plug ...
- Struts学习总结-04 上传文件
1. upload.jsp <%@ page language="java" import="java.util.*" pageEncoding=&quo ...
随机推荐
- Expect:100-Continue & HTTP 417 Expectation[转]
Expect:100-Continue & HTTP 417 Expectation 背景:今天调试火车票查询的代码,发现一个奇怪的事情,如果使用公司本地的代理,那么一切正常,如果使用的是公司 ...
- 幸运大转盘-jQuery+PHP实现的抽奖程序
目前好多网站上应用的转盘抽奖程序大多是基于flash的,而本文结合实例将使用jQuery和PHP来实现转盘抽奖程序,为了便于理解,作者分两部分来讲解,本文讲解第一部分,侧重使用jQuery实现转盘的转 ...
- C# GridView弹出窗口新增行 删除行
<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="true" ...
- new String[0]的作用
返回包含此 collection 中所有元素的数组:返回数组的运行时类型与指定数组的运行时类型相同.如果指定的数组能容纳 该 collection,则返回包含此 collection 元素的数组.否则 ...
- Lua中强大的元方法__index详解
今天要来介绍比较好玩的内容:__index元方法 我是备胎,记得回头看看 咳咳,相信每一位女生都拥有或者不知不觉中拥有了一些备胎,啊!当然,又或许是成为过别人的备胎. 没有备胎的人,就不是完整的人生. ...
- 无法下载图片 App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file
刚学线程通信,提示: 2016-01-27 11:11:02.246 20-9 gcd3 communicationOfThread[5193:298643] App Transport Securi ...
- Android Studio git ignore
# Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # G ...
- jjs 产生undefined的情况
<script type="text/javascript"> var outObj = { type :"java" } function inn ...
- UEFI引导系统
UEFI引导系统 1 2 3 4 5 6 7 分步阅读 现在的电脑大多数使用了UEFI引导系统(原来都是使用BIOS),从而加快启动速度,但同时也给用惯BIOS的用户带来很多困惑!为啥电脑不能识别制作 ...
- Qt信号槽机制的实现(面试的感悟,猜测每一个类保存的一个信号和槽的二维表,实际使用函数指针 元对象 还有类型安全的检查设定等等)
因为面试时问了我这道题,导致我想去了解信号槽到底是如何实现的,于是贴着顺序看了下源码,大致了解了整个框架.网上关于信号槽的文章也很多,但是大部分都是将如何应用的,这里我就写一下我所理解的如何实现吧, ...