我正在努力解决其中一个春天的注释,那就是@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";
}
}
答案 0 :(得分:0)
您可以将按钮类型更改为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;
...
})
}