jsp的form提交到action

为什么jsp中<form>里面的文本框的值,到Action里面就成String类型的了?Struts2的自动复制,报异常,类型不匹配,因为Action中的类型是int比如... 为什么jsp中<form>里面的文本框的值,到Action里面就成String类型的了?
Struts2的自动复制,报异常,类型不匹配,因为Action中的类型是int

比如页面有个文本框是“年龄”,输入“21”,到Action就成String型的“21”了,没办法赋值给Action的int 属性age。。。。。
展开
 我来答
marginknow
推荐于2016-04-16 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:0
展开全部
如果直接进行转换,例如:
int id = Integer.parseInt(request.getParameter("id"));

那么将出现风险。 ID 这个值不一定每次都有,因此需要保护。

String sID = "";
int iId = 0;
sID = request.getParameter("id");
if(!sID.equals("")){

iId = Integer.parseInt(request.getParameter("id"));

}

写页面程序 经常容易出这种错误,而且出现后很不容易Dbug。

小心渡得万年船。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wtslh
2010-05-07 · TA获得超过116个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:0
展开全部
你这样的做法,相当于是jsp和servlet之间数据的交互。而这样获取数据,就是通过request.getParameter()方法获取,这个方法返回的就是字符串。
你可以Integer.parseInt()进行转化为int类型。

另外如果你页面上使用了ActionForm,并且在后台有对应的Form的话,struts是可以自动帮你转化为对应数据类型的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyangush
2010-05-07 · TA获得超过309个赞
知道小有建树答主
回答量:512
采纳率:0%
帮助的人:276万
展开全部
因为页面提交后,通过网络传输,变成流的形式传输,接收到的也是,传输过程无法判断是int,一律认为是String 。所以使用时必须要进行类型转换
希望可以帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风魂白帝
2010-05-07 · TA获得超过271个赞
知道答主
回答量:79
采纳率:0%
帮助的人:98.6万
展开全部
要类型转换
Integer.parseInt(String s );
用这个方法转换成int就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
njzyt2010
2010-05-08
知道答主
回答量:38
采纳率:0%
帮助的人:16.9万
展开全部
你在页面上输入的,其实都是String类型的,要在后台去自己转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式