struts2 中 ,类型转换错误

在struts2中,被请求的类继承了ActionSupport类以后,有一个内置的input属性,当类型转换失败的时候会把页面转到input所对应的页面.在这里有个问题,... 在 struts2 中,被请求的类继承了 ActionSupport 类以后,有一个内置的 input 属性,当类型转换失败的时候会把页面转到 input 所对应的页面.在这里有个问题,在后台中 我有一个 long 和 date 类型,在页面上输入 值以后,我想保存这些值,但是每次都是将页面转到了 input 属性对应的页面,我知道是 类型转换出了错误,但是怎么能消除这个错误?在那儿能将页面上的 输入的字符串类型转成 long 和 date 呢?请各位高手指点一下... 展开
 我来答
xulonghui2011
2011-12-16 · 超过34用户采纳过TA的回答
知道答主
回答量:87
采纳率:100%
帮助的人:66.7万
展开全部
struts2一般情况下是会进行自动类型转换的,出现类型转换错误,那肯定是你的输入值根本就不是相应的值,所以你在页面上要进行相应的验证,要么你就把后台中数据类型定成String类型的,这样在后台自己处理数据转型的问题。不用借助Struts2的自动转型了
残缺的牙
2011-12-03
知道答主
回答量:18
采纳率:0%
帮助的人:13.5万
展开全部
你看看你后台继承了ActionSupport类后,如果你去接收long类型和data类型是会出错的,后台只会接受String类型,也就是每次你需要写与页面对应表格属性,例如你在页面写了<input type="text" name="username" />那么你在后台接收这个表格属性的时候就要定义String类型的数据去接收
private String username;好.这个时候你可以拿到页面上的数据了.接下来在后台你就可以开始将String类型转换成你想要的long类型和data类型了,你可以在默认的excute()方法中处理然后传回页面,也可以自己另写方法,但要在Struts.xml中进行配置,写明这个action是由哪个方法处理
更多追问追答
追问
看来你的答案理解了一点,谢谢你的指点.但是这样的话还有个问题,就是后台的类型都是 String 类型了,在页面上可以用什么来写 date 或者 long 类型的吗? 我用的 ssh 的架构, 数据库中的表的映射定义成了 model ,然后共同继承了一个 基类. 我想让这些 model 代替 action 的请求过来时, 接受页面上的变量,但是在这些 model 中有 long 和 date 类型, 能不能在页面上定义date 类型和 long 型,或者在什么地方转换一下?
追答
嗯,你的这个问题我也在思考,目前我也在学习ssh中,如果你找到了问题的答案请也告诉我,谢谢~!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SauronTT
2011-12-07 · TA获得超过233个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:130万
展开全部
String 转 Long: parseLong(String s);

String 转 Date: 比如你页面输入的是2011/02/22
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date date = sdf.parse(str);

消除错误的办法是:
第一、action中成员变量全写成String 格式,在action将要显示的转成string,jsp显示全用String
格式的。
第二、jsp传参到acion,action拿到的肯定全是string,这时候想用这个参数,再把这个参数转成你想要的,比如Integer、Date。
良好的代码习惯多少决定了你的开发的速度,鄙人薄见,希望能帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式