欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

struts2--类型转换

程序员文章站 2024-03-07 22:12:03
...

一.概述

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


二.类型转换错误

struts2--类型转换


类型转换错误消息的定制
struts2--类型转换

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

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