2

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

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

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

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

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

4

2 回答 2

3

至少有2个技术错误:

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

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

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

顺便说一句,还有第三个错误,但这更多是设计问题。十年来一直不鼓励使用Scriptlet

于 2012-08-03T04:50:40.397 回答
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
}
于 2012-08-03T04:58:23.003 回答