struts2--类型转换
程序员文章站
2024-03-07 22:12:03
...
一.概述
从一个 HTML 表单到一个 Action 对象, 类型转换是从字符串到非字符串.
HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String 转换为特定的数据类型
在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters 拦截器可以自动完成字符串和基本数据类型之间转换.
HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String 转换为特定的数据类型
在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters 拦截器可以自动完成字符串和基本数据类型之间转换.
二.类型转换错误
类型转换错误消息的定制
测试案例:
新建一个如下的
输入数字才有效,输入其他会报错
(1)action
public class NumberAction extends ActionSupport{//继承ActionSupport
private 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>