Java 错误的请求,请通过表单发送

Java 错误的请求,请通过表单发送,java,spring,Java,Spring,我想知道如何解决这个问题,让我解释一下:我想创建一个搜索栏,并将用户发送到带有结果的jsp视图。我在控制器中创建了下一个方法: @RequestMapping(value = "/search={productName}", method = RequestMethod.GET) public ModelAndView getProducteByName(@PathVariable("productName") String productName) { ModelAndV

我想知道如何解决这个问题,让我解释一下:我想创建一个搜索栏,并将用户发送到带有结果的jsp视图。我在控制器中创建了下一个方法:

 @RequestMapping(value = "/search={productName}", method = RequestMethod.GET)
 public ModelAndView getProducteByName(@PathVariable("productName") String productName) {

        ModelAndView modelview = new ModelAndView("/productSearch");  
        List productsByName = productService.getProductByName(productName);                  
        modelview.addObject("productsByName", productsByName );    
        return modelview;
我在jsp文件中有一个表单,如下所示:


问题是,当我将任何要搜索的内容放在搜索栏中时,如果它将我的
放在url中,那么控制器就无法理解requestMapping

示例:
http://localhost:8080/projectbotigabio/search=potato
它让我:
http://localhost:8080/projectbotigabio/?search=potato

我尝试了很多方法,包括尝试将“post”而不是“get”作为一种方法,但它不起作用。。。任何解决方案?

Web浏览器仅支持3种表单提交:

  • method=“get”

    每个表单值都使用
    ?name=value&name=value&…

  • method=“post”

    每个表单值都添加到POST中,内容类型为
    application/x-www-form-urlencoded
    ,内容为
    name=value&name=value&……

  • method=“post”enctype=“多部分/表单数据”

    POST请求具有内容类型
    多部分/表单数据
    ,内容是一个多部分,每个部分都是表单值

Web浏览器无法生成您想要的URL,因此您必须自己创建,即阻止Web浏览器发送POST请求,并使用Ajax发送您自己的请求。如果这是你想要的,戴上你的学习帽,开始学习它是如何工作的

我建议您停止尝试使用非标准URL语法,使用标准的
GET
处理


无论哪种方式,我建议您在尝试进一步偏离标准之前,了解更多关于HTML表单如何工作的信息。

您可以尝试@RequestMapping(value=“/search/{productName}”非常感谢您的解释!然后我将尝试使用Ajax。。。