struts2--类型转换

来源:互联网 发布:rar解压软件for mac 编辑:程序博客网 时间:2024/06/10 04:59

一.概述

从一个 HTML 表单到一个 Action 对象, 类型转换是从字符串到非字符串. 
HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String 转换为特定的数据类型
在 struts2 中, 把请求参数映射到 action  属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters 拦截器可以自动完成字符串和基本数据类型之间转换.


二.类型转换错误



类型转换错误消息的定制


测试案例:
 新建一个如下的
  
输入数字才有效,输入其他会报错

(1)action
public class NumberAction extends ActionSupport{//继承ActionSupportprivate  Integer number;public void setNumber(Integer number) {this.number = number;}public String getNumber() {System.out.println(number);return "input";}}
(2)index.jsp
<s:form action="number.do" method="post" ><s:textfield name="number" label="age"/><s:submit></s:submit></s:form>

当你输入其他的时候会出现英文错误提示,如果你想自定义错误提示,则需要
新建一个与自己定义的action同名的properties文件,里面写
invalid.fieldvalue.number="\u8BF7\u8F93\u5165\u7AD6\u5B50"
这个就是你要验证的部分,后面写你自定义的提示

问题:当你把form的主题改为simple,它还会显示吗?如果不显示该怎么办?

答:不会显示
解决办法: 你可以打印出这个 ${fieldErrors.number[0] },为什么打印这个你可以s:debug一下就知道了
               或者添加 <s:fielderror name="number"></s:fielderror>

原创粉丝点击