将参数从JSP发送到spring控制器

将参数从JSP发送到spring控制器,spring,model-view-controller,jsp,Spring,Model View Controller,Jsp,我正在使用SpringMVC开发一个web应用程序。我以下面的格式将参数从JSP传递到spring控制器。就像我必须传递两个参数一样 <a href="/spring.html?data1=<%=data1 %>?data2=<%=data2 %>"> Hello </a> 这是传递参数的正确方法吗。我已经干运行我的代码很多次了,但是我的页面仍然给出空指针,所以我怀疑这是否是因为这个原因。你能告诉我这件事吗。谢谢。至少有两个技术错误: 您应该将请

我正在使用SpringMVC开发一个web应用程序。我以下面的格式将参数从JSP传递到spring控制器。就像我必须传递两个参数一样

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

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

至少有两个技术错误:

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

    data1=request.getParameter(“data1”);
    data2=request.getParameter(“data2”);
    
  • 请求参数分隔符是
    &
    ,而不是
    是请求查询字符串分隔符

    
    

  • 顺便说一句,还有第三个错误,但这更多的是设计问题

    如果是Spring MVC控制器,则不需要调用
    request.getParameter
    。您可以这样定义方法,参数将由MVC framework自动填充:

    @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
    }
    

    非常感谢你的帮助。。我将尝试此方法在本例中如何传递对象,问题是在使用请求时无法键入case。GetParameter如果数据1和数据2是对象,那么如何在控制器中键入cast您犯了一个概念错误。HTML代码不能包含Java对象,只能包含一系列字符。Java中的字符序列由字符串表示。因此,您需要将它们转换为字符串,反之亦然。或者您可以将它们存储在某个地方(数据库、会话等),并传递一些唯一的标识符。您可以共享相应的jsp,以了解如何将对象从那里传递到这里吗。谢谢。您的JSP可以有一个简单的链接,比如:
    ,我建议您阅读一些关于
    @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
    }