我有一个使用 struts2(版本:2.3.15)的 java web 应用程序,我需要将类型转换应用于 int 字段。
该字段可以具有值“-”,并且我必须使用类型转换将其更改为 0,但是使用新版本的 struts2 当我发送表单时返回到带有验证器错误的表单,而没有从类型转换传递。
我写了以下代码:
package sistema.conversores;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
/**
*
* @author Administrador
*/
public class IntegerConverter extends StrutsTypeConverter {
public Object convertFromString(Map context, String[] values, Class toClass) {
System.out.println("load");
if (values.length != 1) {
super.performFallbackConversion(context, values, toClass);
}
System.out.println("conversion");
final String numero = values[0];
try {
return Integer.parseInt(numero);
} catch (Exception e) {
return 0;
}
}
public String convertToString(Map context, Object o) {
final NumberFormat formatter = new DecimalFormat("#0");
System.out.println("lectura");
if (o instanceof Integer) {
return formatter.format(o);
} else {
return String.valueOf(o);
}
}
}
并将其附加到 xwork-conversion.properties
# syntax: <type> = <converterClassName>
int = sistema.conversores.IntegerConverter
java.util.Date = sistema.conversores.DateConverter
但是 int 类型转换不能在 Struts 2.3.15 上运行,这适用于 struts 2.1.6
由于 ONGL 错误,我需要升级版本:https ://issues.apache.org/jira/browse/WW-3580
我怎样才能解决这个问题?