tomcat jsp 数字串传值异常问题

1.在下面的jsp内嵌java代码去除num之前,有某Controller已经有了操作:  

          request.getSession().setAttribute("num","纯数字串(带有X或Y的此处不考虑)");   //eg:435122199502011115

2.然后在某jsp中:

      <% String num= (String) request.getSession().getAttribute("num");%>获取到String num.

3.此时,可能(只是有可能),在传值到java后台的Controller(采用springMVC框架)指定映射方法时:

      在该方法内通过 String num= request.getParameter("num");此时拿到的num就已经变成了 435122199502010000    //后面的几位被和谐了....哈哈

此时这种情况,服务器会报错: 500 Get  http:服务器ip:port/路径/(435122199502010000).....见图

此时解决办法:  在jsp获取到string串时就用英文字符拼接,传到controller内的指定的方法时通过subString拿到自己需要的那一段即可...

jsp如下:

window.onload=function(){

<% String certNo = (String) request.getSession().getAttribute("certNo") + "end";%>

// var certNo=${certNo};

var certNo = '<%=certNo%>';

//var certNo='111111111111111111end';

$.ajax({ type: "get", url: "get_todo_count.do", data: {"certNo":certNo}, dataType: "json",

success: function(data){

if("error"== data.count){ $("#demo_todo").html("系统暂时无法读取..."); }

else{ var count = data.count+"条待办";

$("#PDNotice_todo").html(count); //只为对应的系统设值 } } });

//setTimeout(methodName, 5000);//设置系统指定时间后执行的方法 } });

XXController内的XXmethods体内:

String certNo = request.getParameter("certNo");
// System.out.println(">>>>--->>>>>>>>>>>>>>---->>>>>>>>>------->>>>>>"+certNo);
int index = certNo.indexOf("end");
certNo = certNo.substring(0, index);
// System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+certNo);

最后的certNO串肯定是你想要的..

第一次写,格式还不是很清楚...了了几笔把大概的意思说出来了,以后有机会再好好研究写出好看的随笔..希望能够帮助到某些人

原文地址:https://www.cnblogs.com/duenboa/p/4756164.html