如何通过spring框架中的控制器使用查询字符串将参数发送到jsp页面?

时间:2014-06-19 09:24:03

标签: java javascript spring jsp spring-mvc

我有一个包含数据表的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;。 请帮忙。

4 个答案:

答案 0 :(得分:1)

以下是我为获得结果所做的工作: 我用下划线替换了空白(&#34; _&#34;)。

pass_on=aData[0];
var res=pass_on.replace(/ /g,"_");
window.location.href = "/test/integrate"+"?"+"group="+res;

没有更多变化。其余的工作正常。 我仍然不知道为什么%20没有工作。

答案 1 :(得分:0)

您需要传递 cool%20guy

网址不了解特殊字符

http://www.w3schools.com/tags/ref_urlencode.asp

答案 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)