Struts2 莫名其妙的Invalid field value for field 的异常

今天在开发系统时候,又出现了一个奇葩的Struts2 异常——Invalid field value for field [‘phId‘]

Jsp代码:phId 的类型是Int

   	<s:hidden  name="phId" value="phId"/>

Action 中用来接收的属性值:

	private Integer phId;

	//此处省略了Getter/Setter方法

按常理来说、应该是可以接收到数据的; 难道人品差原因嘛!Action 里面phId 一直是空值 。

网上查一遍资料,

大家普遍说是在Struts.xml 少了一个<result name="input">/***.jsp</result>

或是属性名称写错了,我再三检查我的属性值和类型并重新生成Getting/Settring方法,没有什么问题啊(注明:建议大家去copy ,可以减少不必要的失误)

我就开始琢磨着了,String 类型转换为Int类型错误;那我自己写一个转换器来实现String 到Int类型转换;

我查一个下api ,原来xwork已经为我们封装好了一些简单的基本类型。只有一些复杂的类型转换是根据自己的需要来动手写的。 以下是转换器的简单代码

public class MyIntegerConverter extends DefaultTypeConverter{

	@Override
	public Object convertValue(Map<String, Object> context, Object value,
			Class toType) {
		// 将Map转换为Object 对象
		return super.convertValue(context, value, toType);
	}

	@Override
	public Object convertValue(Map<String, Object> context, Object target,
			Member member, String propertyName, Object value, Class toType) {
		// 将Map转换为Object 对象
		return super.convertValue(context, target, member, propertyName, value, toType);
	}

	@Override
	public Enum<?> enumValue(Class toClass, Object o) {
		// 将一个Object 对象转换为Enumeration 枚举类型
		return super.enumValue(toClass, o);
	}

	@Override
	protected Locale getLocale(Map<String, Object> context) {
		// 将Map 对象本地化
		return super.getLocale(context);
	}

	@Override
	public TypeConverter getTypeConverter(Map<String, Object> context) {
		// 将Map 对象转换为转换器类型
		return super.getTypeConverter(context);
	}

	@Override
	public Object convertValue(Object value, Class toType) {
		if(toType == Phone.class){
			Phone phoneBean = new Phone();
			phoneBean.setId((int) value);
			return phoneBean;
		}
		if(toType == String.class) {
			return value.toString();
		}

		return super.convertValue(value, toType);
	}

}

到这个时间我就纳闷了、我就开始尝试各种写法了;

将原来的<s:hidden  name="phId" value="phId"/>改为<s:hidden  name="phId" value=‘<s:property value="phId"/>‘/>还是不行!!!

最后、我干脆不要struts标签了,使用了Jsp 标签改成 <input type="hidden" name="phId" value=‘<s:property value="phId"/>‘/>

结果、、、结果万万没想到居然接收到phId 的数据了。这个struts 标签的一个dug 嘛!由于工作进度的要求, 我就不一阿斗的精神追问为什么了!!!  如果大家帮有什么好见解和意见,欢迎评论,我们一起分享一下!!

Struts2 莫名其妙的Invalid field value for field 的异常

时间: 2024-10-09 20:45:31

Struts2 莫名其妙的Invalid field value for field 的异常的相关文章

[Struts2] No result defined for action ... and result input &amp; Invalid field value for field ...

"No result defined for action ... and result input"错误一般发生在Struts2的拦截器拦截时遇到了问题时,Struts2会将跳转到result为input的视图上,但是在配置文件中并没有给这个Action配置input的result.可以建立一个内容为如下的Jsp文件,并在配置文件中配置result为input时跳转此文件,将会显示出具体的错误原因. <div style="color:red"> &l

[Struts2] No result defined for action ... and result input &amp;amp; Invalid field value for field ...

"No result defined for action ... and result input"错误一般发生在Struts2的拦截器拦截时遇到了问题时.Struts2会将跳转到result为input的视图上,可是在配置文件里并没有给这个Action配置input的result. 能够建立一个内容为例如以下的Jsp文件.并在配置文件里配置result为input时跳转此文件.将会显示出详细的错误原因. <div style="color:red">

报错:struts之invalid field value for field

在表单中输入数据提交时提示invalid field value for field "product.sale Date".(product.sale是文本框的名字,Date是其数据类型) 原因:输入数据的格式错误. 希望:将提示改为,如:"格式错误,请输入正确的格式". 方法:使用国际资源, PS:国际资源使用方法 http://www.cnblogs.com/yexiaodong/p/3702765.html 报错:struts之invalid field v

文件上传时异常Invalid field value for field &quot;**&quot;与enctype=&quot;multipart/form-data&quot;

在做文件上传时,有一个form标签的属性必须要加上. 文件上传的form若如下面所写,则会报异常:Invalid field value for field "**",原因是:表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码.默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传:只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操

linux cut: invalid byte, character or field list Try &#39;cut --help&#39; for more information.

1. 概述 centos执行简单shell 脚本 报错 cut: invalid byte, character or field listTry 'cut --help' for more information. 2. 代码 vim userid.sh #!/bin/bash #Program # Use id, finger command to check system account's information. #History #2015/07/17 logan first rel

[field:picname/]和[field:litpic/]区别

显示出二级栏目及以下的所有图片(包含三级栏目的) <ul class="incps"> {dede:arclist row=9 col="3" typeid='3' titlelen=15 type='image.'imgwidth='234' imgheight='214'} <li><a href="[field:arcurl/]" class="btc" ><img src=&q

Huge CSV and XML Files in Python, Error: field larger than field limit (131072)

Huge CSV and XML Files in Python January 22, 2009. Filed under python twitter facebook pinterest linkedin google+ I, like most people, never realized I'd be dealing with large files. Oh, I knew there would be some files with megabytes of data, but I

Invalid action class configuration that reference 异常

遇到Invalid action class configuration that reference的时候,你可以在你的Action中设置一下断点,来判断一下他是否找到了这个action. 不过遇到这个异常的时候都是没有进到action. 这时候,有几种可能导致呢? (1)struts.xml的配置写的不对,name,class检查一下.如果是和spring做整合的,要注意struts中的class写的spring配置文件中的name,在spring配置文件中bean中才写真正的class路径

解决Invalid bound statement (not found)的异常

今天在搭建框架的时候,报了一个Invalid bound statement (not found)的异常 经过分析,得出原因: 我的mybatis相关的dao和mapper.xml是通过逆向工程生成的,生成的命名都是Mapper结尾,比如UserMapper.java,UserMapper.xml 习惯上将UserMapper.java改为了UserDao.java 但是对应的UserMapper.xml的命名空间没有改,相当于UserDao.java和UserMapper.xml没有关联上,