struts的form表单中类型为integer的值,若为+6的形式,在action里得到该表单的值变成0了

wzx7934003 2006-07-19 04:08:50
我的程序有个form表单,该表单有个orders字段,代码如下
public Integer getOrders() {
return bbsclass.getOrders();
}

public void setOrders(Integer orders) {
bbsclass.setOrders(orders);
}
当在表单里输入形如+6这样的值时,在action里通过Class.getOrders()方法得到的值为0,而如果输入是6的话,就能得到正确的值6,请问这是怎么回事,该如何解决,谢谢
...全文
175 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jokerjava 2006-07-19
  • 打赏
  • 举报
回复
Integer这类写的
"-6" 可以解析 "+6"不可以

提交sun当bug吧
OnlyFor_love 2006-07-19
  • 打赏
  • 举报
回复
其实在后台做这些判断都不太合适,你在提交表单的时候就应该用js对表单值进行验证
OnlyFor_love 2006-07-19
  • 打赏
  • 举报
回复
看来只能做判断了
String str = request.getParameter("orders");
if(str.startsWith("+")){
str = str.substring(1);
}
Integer k = new Integer(str);
System.out.println(k);
dreamover 2006-07-19
  • 打赏
  • 举报
回复
Integer不认+号,还真没用到过
OnlyFor_love 2006-07-19
  • 打赏
  • 举报
回复
你可以在提交表单后把这个字段的值转换成int格式的 就想我上面给出的程序中一样
OnlyFor_love 2006-07-19
  • 打赏
  • 举报
回复
String str = "+6";
Integer i = new Integer(str);
System.out.println(i);
如果是这样的话程序一定会抛异常的。

int k = +6;
Integer i = new Integer(k);
System.out.println(i);
这样的话是正确的,输出“6”;
wzx7934003 2006-07-19
  • 打赏
  • 举报
回复
是测试人员故意刁难我啊,他们故意输入+6,而+6确实也是一个数字,所以就说我的程序有bug了,不知道如何去解决呢
wangxin4450 2006-07-19
  • 打赏
  • 举报
回复
楼主是故意输错的呢 还是这样输入有其用途
Orders是Integer类型的 输入+6当然不能正确显示了
如果是有特殊用途的话 在客户端做一些判断和转换再输入就可以了
OnlyFor_love 2006-07-19
  • 打赏
  • 举报
回复
Integer orders?????????????????

直接传int值不就可以了吗?
dreamover 2006-07-19
  • 打赏
  • 举报
回复
关注

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧