Web提交表单数据时,参数值都是以字符串的形式上传的,后有后台的框架自动进行类型转换或手动转换,如struts2会自动把String自动转换为一些基本的数据类型,如int。
上个星期Ricki遇到一个很奇怪的问题,在Source类中有一个方法,如:
public void setLength(Short length) {
this.length = length;
}
主要是设置音源播放时长的,值有用户在客户端输入的。不过一次测试中,发现上传音源失败,后台打印的错误如下:
Caused by: java.lang.NoSuchMethodException: cn.entity.Source.setLength([Ljava.lang.String;)
纳闷的是,都没改代码,记得出错之前一直都可以的,于是断定输入值有问题,试过输入很小的值,如32时,上传音源没有问题,后使用Short.MAX_VALUE查过最大值为32767,输入值大于32767时,就会报上面的异常。对此,Ricki更加疑惑了,如果值大太的话,应该不是报这个异常啊,如:
Short shortData = Short.valueOf("32768");
其报的异常是:
Exception in thread "main" java.lang.NumberFormatException: Value out of range. Value:"32768" Radix:10
at java.lang.Short.parseShort(Unknown Source)
at java.lang.Short.valueOf(Unknown Source)
at java.lang.Short.valueOf(Unknown Source)
at ricki.cheung.test.Test.main(Test.java:81)
有空的话,欢迎到
红番薯逛逛
分享到:
相关推荐
- 配置Struts2的`struts-default.xml`或`struts-plugin.xml`,启用注解配置支持。 - 最后,运行应用程序,Struts2会自动扫描注解并根据它们进行处理。 4. **项目结构解析**: - `.classpath` 和 `.project` 是...
1. **编译错误**:在编写代码时,如果调用了未在当前类或其父类中定义的方法,编译器不会报错,但在运行时会抛出`NoSuchMethodException`。 2. **反射操作**:在使用Java反射API(如`Class.getMethod()`或`Class....
5. **框架规范遵循**:对于Struts2等框架,应遵循其规范,如避免在Action方法中使用参数(除非使用特殊注解),因为框架通常通过默认机制处理参数传递。 #### 解决方案 1. **检查方法可见性**:确认方法是否被声明...
在Java编程中,`java.lang.NoSuchMethodException` 是一个常见的运行时异常,它表示尝试调用一个不存在的方法。这个异常通常发生在动态方法调用或反射操作中。在给出的标题 "java.lang.NoSuchMethodException: ....
当设置属性时,如果源值的类型与目标属性的类型不匹配,它会尝试自动转换。例如,将字符串转换为整数或日期。但需要注意的是,这种转换并不总是成功,可能会抛出异常,如`ConversionException`。 5. **异常处理** ...
2. **类型转换**:库内置了多种类型的转换器,例如`convert()`方法,它可以自动将值转换为指定的目标类型,这对于数据绑定和验证非常有用。 3. **复制属性**:`copyProperties()`方法可以将一个对象的所有属性复制...
在给出的描述中,问题出在一个基于Struts2、Hibernate4和Spring4的Web应用项目。开发者创建了一个基类`BaseAction`,该类实现了Spring的`ModelDriven`接口,并且被声明为`@Component`,以便于Spring管理。同时,`...
在处理不同类型的属性时,BeanUtils提供了自动类型转换的功能。`ConvertUtils`类包含了各种类型转换的方法,如`convert()`,可以将字符串转换为整型、浮点型、日期型等,这大大减少了手动类型转换的代码量。 3. **...
在Java编程中,`java.lang.NoSuchMethodException`异常通常表明在运行时尝试调用一个不存在的方法。这个错误在上传文件时出现,可能是由于在控制器方法的签名与前端发送请求时的参数不匹配导致的。在描述中提到的...
3. **类型转换**:BeanUtils库自动处理属性值的类型转换,使得不同类型的属性值可以互相转换,无需开发者手动进行类型检查和转换。 4. **动态Bean属性**:对于没有getter或setter方法的动态Bean属性,BeanUtils也能...
- **类型转换**:自动处理基本类型和String之间的转换,使得在设置属性时,即使源数据类型与目标属性类型不同,也能进行自动转换。 2. **BeanUtils的高级特性** - **自定义转换器**:如果默认的类型转换不满足...
- 检查Struts2配置文件(struts.xml)。 - 确保所有必需的库都包含在类路径中。 **3. `org.springframework.beans.factory.BeanCreationException`: Error creating bean with name 'biz' defined in classpath** ...
需要注意的是,虽然 PropertyUtils 支持类型转换,但它也有一些限制。例如,它不支持 `java.util.Date` 的转换,仅支持 `java.sql.Date`。此外,PropertyUtils 在进行类型转换时可能会比 BeanUtils 慢一些,因为它...
BeanUtils还支持数据类型的自动转换。这意味着,即使源对象和目标对象的属性类型不完全匹配,只要能够进行类型转换,BeanUtils也会尝试完成这个过程。例如,将字符串转换为整型,或者将日期转换为字符串等。 **6. ...
3. **类型转换(Type Conversion)**:`BeanUtils`还包含了自动类型转换的逻辑,当设置属性值时,如果源值与目标属性类型不匹配,`BeanUtils`会尝试进行类型转换。然而,这种转换并不总是成功,特别是涉及到复杂类型...
5. **`java.lang.ClassCastException`** - 在强制类型转换失败时抛出此异常,即尝试将一个对象强制转换为其实际类型以外的类型时。 6. **`java.lang.ArithmeticException`** - 发生算术运算错误时抛出此异常,例如...
5. **异常处理**:在上述过程中,可能会遇到`ClassNotFoundException`、`InstantiationException`、`IllegalAccessException`或`NoSuchMethodException`等异常,因此应进行适当的异常处理。 6. **释放资源**:使用...
2. 静态嵌套类:静态嵌套类(也称为静态内部类)与成员内部类相似,但它可以用`static`修饰。这意味着它们不与外部类的实例绑定,可以直接通过类名创建对象。静态嵌套类不能直接访问外部类的非静态成员,但可以通过...
- **类型转换**:自动将字符串类型的参数转换为JavaBean属性所需的类型,例如从字符串转为整型、浮点型等。 - **复制Bean**:`copyProperties()`方法可以将一个Bean的所有属性复制到另一个Bean,这在对象克隆或...