fiter传递int值出现异常java.lang.Integer cannot be cast to java.lang.String

fiter代码if(request.getParameter("pn")==null){request.setAttribute("pn",0);}else{reques... fiter代码 if(request.getParameter("pn")==null){
request.setAttribute("pn",0);
}
else{
request.setAttribute("pn",request.getParameter("pn"));
}
JSP代码if(request.getAttribute("pn")==null){

int pn=0;
}
else{
String pnn=(String)request.getAttribute("pn");
int pn=Integer.parseInt(pnn);
}
展开
 我来答
山轻黄金蝶
2014-05-29 · 超过27用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:55.9万
展开全部
很显然,你的filter里面的request.getParameter("pn")是个int类型的,
else{
request.setAttribute("pn",request.getParameter("pn"));
}

在你的jsp里又这么写:
else{
String pnn=(String)request.getAttribute("pn"); //你觉着这样能行吗?你把这个int 给转换成string是不行的
int pn=Integer.parseInt(pnn);
}
更多追问追答
追问
request.getAttribute是Object类型,不能直接强制转换为int类型,所以我就先转为String类型再来转换为int类型的
追答
request.getAttribute("pn"); 如果你放进去的是int型的,那么这里在取数据的时候只是隐式地向上转成object类型的,你再转回来时只能用integer去接收,不能用string,注意理解上溯和下溯
直接写 (Integer)request.getAttribute("pn"); 这样就ok
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式