我有一个包含数据表的JSP页面。我想将单击的第一列内容传递给另一个jsp页面。我正在使用spring框架。我试图实现它,但有一些问题。问题是:当我在另一个jsp页面中检索参数时,我得到一些内容,但跳过第一个空格后的内容。
以下是我尝试过的代码: 源jsp页面:
$(document).ready(function(){
$("#mytable tbody tr").click(function(){
var aPos = $('#mytable').dataTable().fnGetPosition(this);
var aData = $('#mytable').dataTable().fnGetData(aPos);
pass_on=aData[0];
window.location.href = "/test/integrate"+"?"+"group="+pass_on;
});
});
控制器:
@RequestMapping(value="/test/integrate", method = RequestMethod.GET)
public String pass_parameter_by_type(ModelMap model,HttpServletRequest request,HttpServletResponse response) {
return "destination";
}
目标jsp页面:
<body>
<input type="button" id="sub_but">
<input type="hidden" value=<%=request.getParameter("group") %> id="group_parameter">
$("#sub_but").click(function(){
alert($("#group_parameter").val());
});
</body>
如果传递的值是&#34;很酷的家伙&#34;,那么在url中它显示test / integrate?group = cool guy。 但在警报中它只显示&#34; cool&#34;。 请帮忙。
答案 0 :(得分:1)
以下是我为获得结果所做的工作: 我用下划线替换了空白(&#34; _&#34;)。
pass_on=aData[0];
var res=pass_on.replace(/ /g,"_");
window.location.href = "/test/integrate"+"?"+"group="+res;
没有更多变化。其余的工作正常。 我仍然不知道为什么%20没有工作。
答案 1 :(得分:0)
答案 2 :(得分:0)
在您的控制器中,请执行以下操作:
@RequestMapping(value="/test/integrate", method = RequestMethod.GET)
public String pass_parameter_by_type(ModelMap model,@RequestParam String group,HttpServletRequest request,HttpServletResponse response) {
model.addAttribute("group",group);
return "destination";
}
在您的其他JSP中,请执行以下操作:
<body>
<input type="button" id="sub_but">
<input type="hidden" value="${group}" id="group_parameter">
$("#sub_but").click(function(){
alert($("#group_parameter").val());
});
</body>
我希望它能解决你的问题。 :)
答案 3 :(得分:0)
对文字进行编码。对于javascript
escape(...)
对于java,请使用:
URLEncoder.encode( ,encoding)