将参数从JSP发送到弹簧控制器

时间:2012-08-03 04:45:18

标签: spring model-view-controller jsp

我正在使用spring MVC开发一个Web应用程序。我将参数从JSP传递给Spring控制器,格式如下。就像我必须传递两个参数所以我正在做

<a href="/spring.html?data1=<%=data1 %>?data2=<%=data2 %>"> Hello </a>

我的假设是在弹簧控制器中,我可以接收输出如下

data1= request.getAttribute("data1");
data2= request.getAttribute("data2");

这是传递参数的正确方法吗?我已经多次运行我的代码仍然我的页面给出空指针所以我怀疑是否是因为这个。你能告诉我这件事吗?谢谢。

2 个答案:

答案 0 :(得分:3)

至少有2个技术错误:

  1. 您应该将请求参数作为请求参数,而不是请求属性。

    data1 = request.getParameter("data1");
    data2 = request.getParameter("data2");
    
  2. 请求参数分隔符为&,而不是??是请求查询字符串分隔符。

    <a href="/spring.html?data1=<%=data1 %>&data2=<%=data2 %>"> Hello </a>
    
  3. 顺便提一下第三个错误,但这更像是一个设计问题。 Scriptlets are discouraged since a decade

答案 1 :(得分:0)

如果是Spring MVC控制器,则不需要调用request.getParameter。你可以像这样定义你的方法,MVC框架会自动填充参数:

@RequestMapping(value="/myRequest", method=RequestMethod.GET)
@ResponseBody
public String handleMyRequest(
        @RequestParam String data1,
        @RequestParam String data2
        ) {
   // your handler code here
   // you will have data1 and data2 automatically populated by Spring MVC
}
相关问题