【问题标题】:Spring MVC @PathVariable annotationSpring MVC @PathVariable 注解
【发布时间】:2018-01-10 01:42:34
【问题描述】:

我正在努力解决其中一个春季注释,即@PathVariable。我期待着为你们寻求帮助..

我的目标是让网址看起来像这样“../product/1”而不是“../product?productId=1”,但我的主要问题是我想在文本中输入 ID 号框,然后使用按钮提交。示例:如果我在文本框中输入 1,我想从我的数据库中接收 id 为 1 的页面。

所有这些都在我的购物车页面中进行。

我的代码

JSP 文件

        <form:form class="form-inline my-2 my-lg-0" action="product" method="get">
            <input class="form-control mr-sm-2" type="text"  placeholder="Search" name="productId"/>
            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form:form>

控制器

@Controller
@RequestMapping("/")
public class OrderController {

    @Autowired
    ProductService productService;

    @RequestMapping("/cart")
    public String showCart() {
    return "cart";
    }

    @RequestMapping(value = "/product/{productId}", method = RequestMethod.GET)
    public String getProductById(@PathVariable(value = "productId") int productId, Model model) {
        model.addAttribute("product", productService.findProductById(productId));
        return "product";
    }

}

【问题讨论】:

    标签: java spring jsp web


    【解决方案1】:

    您可以将按钮类型更改为button,并编写一个javascript函数为submitForm

    <form:form class="form-inline my-2 my-lg-0" action="product" method="get">
                    <input class="form-control mr-sm-2" type="text"  placeholder="Search" name="productId" id="productId"/>
                    <button class="btn btn-outline-success my-2 my-sm-0" type="button" onclick="javascript:submitForm()">Search</button>
                </form:form>
    

    在 ajax 请求中发送产品 ID,如下所示

    function submitForm(){
       var prodId = document.getElementById("productId").value;   
       $.ajax({
           url : '/product/'+prodId;
           ... 
      })
    }
    

    【讨论】:

      猜你喜欢
      • 2013-11-17
      • 1970-01-01
      • 2013-11-17
      • 2011-04-01
      • 2011-07-09
      • 1970-01-01
      • 2015-04-30
      • 2012-08-30
      相关资源
      最近更新 更多