spring:mvcUrl映射错误的id

时间:2017-11-04 13:25:28

标签: java spring jsp spring-mvc

我正在尝试将productId映射到我的jsp页面中的URL,但值是错误的。 该URL返回<a href="/casadocodigo/produtos/%7B/id%7D">Título 1</a>但响应返回正确的值:

HTML Mapping

我的jsp代码:

    <%@ page language="java" contentType="text/html; charset=iso-8859-1" pageEncoding="iso-8859-1"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
        <div>
            ${success}
        </div>
        <table>
            <tr>
                <td>Id</td>
                <td>Titulo</td>
                <td>Valores</td>
    </tr>
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.id}</td>
            <td><a href="${spring:mvcUrl('PC#show').arg(0, product.id).build()}">${product.title}</a></td>
            <td>
                <c:forEach items="${product.prices}" var="price">
                    [${price.value} - ${price.bookType}]
                </c:forEach>
            </td>
        </tr>
    </c:forEach>
</table>

我的Java控制器代码:

    @RequestMapping(method=RequestMethod.GET)
public ModelAndView list() {
    ModelAndView modelAndView = new ModelAndView("products/list");
    modelAndView.addObject("products", productDAO.list());
    return modelAndView;
}

我的Java DAO代码:

    public List<Product> list() {
    return manager.createQuery("select distinct(p) from Product p join fetch p.prices", Product.class).getResultList();
}

1 个答案:

答案 0 :(得分:0)

不幸的是我看不到你的方法'show'。 我猜你在路径上印有错误信息:

@RequestMapping("/show{/id}")
//--------------------^^  WRONG
public String show(@PathVariable("id") long id) {
    ...
}

代替

@RequestMapping("/show/{id}")
//--------------------^^  RIGHT