当前位置:编程学习 > JAVA >>

Struts1动态Form开发问题

做了一个简单的例子,算术计算器,在页面中输入两个数,计算加减乘除,

在struts-config.xml中配置<form-bean name='calcForm' type='org.apache.struts.action.DynaActionForm'><form-property name='num1' type='java.lang.Duble'><form-property name='num2' type='java.lang.Duble'></form-bean>

<action name='calcForm' .....>

在对应的action中

DynaActionForm myForm=(DynaActionForm)form;

Double num1=(Double)myForm.get('num1');

Double num2=(Double)myForm.get('num2');

问题:

在页面中输出1,在action中取到的是1.0;

而如果在页面中输出的是个字母a,则在action中取到的是0.0
如何能通过这种方式,在action中得到字母a,然后再给出错误提示!

--------------------编程问答-------------------- 1、String sn=myForm.get('num1');
2、double dn=Double.parseDouble(sn)
如果2中抛出异常,则是不可转化为数字的。 --------------------编程问答-------------------- 我使用的是动态Form
在struts-config.xml中配置
<form-bean name='calcForm' type='org.apache.struts.action.DynaActionForm'>
    <form-property name='num1' type='java.lang.Double'>
    <form-property name='num2' type='java.lang.Double'>
</form-bean>
所以
在对应的action中
DynaActionForm myForm=(DynaActionForm)form;

Double num1=(Double)myForm.get('num1');
其中myForm.get('num1')是object类型的如果
String num1=(String)myForm.get("num1");
就会出现
javax.servlet.ServletException: java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String异常




--------------------编程问答-------------------- 实验发现,页面中传入空值,
DynaActionForm myForm=(DynaActionForm)form;

Double num1=(Double)myForm.get('num1');
得到的num1也是0.0 --------------------编程问答-------------------- 一个非常笨的方法暂时把问题可以解决
在action中用request.getParameter("num1")方法获取num1,然后验证是数字后
Double num1=(Double)myForm.get('num1');
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,