<c:param>值属性无法正常工作

时间:2016-11-13 13:03:08

标签: jsp jstl

在我的Java spring mvc web app中,我想在链接中传递一个请求参数。以下是.jsp页面代码“

的一部分
           <c:url var = "updateLink" value="/customer/showFormForUpdate">
           <c:param name="customerId" value="${tempCustomer.id}"></c:param>
           </c:url>

           <c:forEach var="tempCustomer" items="${customers}">

             <tr>
                <td> ${tempCustomer.firstName} </td>
                <td> ${tempCustomer.lastName} </td> 
                <td> ${tempCustomer.email} </td>
                <td> ${tempCustomer.id} </td>



                <td>    <a href="${updateLink}">Update</a> </td>

下面的代码部分非常合适。它会显示&#39; tempCustomer&#39;的客户ID。

<td> ${tempCustomer.id} </td>

然而,

<c:url var = "updateLink" value="/customer/showFormForUpdate">
       <c:param name="customerId" value="${tempCustomer.id}"></c:param>

这部分代码无法正常工作。值=&#34; $ {tempCustomer.id}&#34;根本没有传递tempCustomer.id的值。当我点击时,更新链接

   <td>    <a href="${updateLink}">Update</a> </td>

网址看起来像这样

  

http://localhost:8080/web-customer-tracker/customer/showFormForUpdate?customerId=

参数值不存在。 url应该包含customerId参数的值。

完整参考,这里是完整的.jsp页面代码

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<title>List Customers</title>




<link type="text/css" rel="stylesheet"
 href="${pageContext.request.contextPath}/resources/css/style.css"/>


</head>
<body>

        <div id ="wrapper">
            <div id ="header">
                <h2>CRM - Customer Relationship Manager</h2>
            </div>
        </div>

        <div id ="container">

            <div id = "content">

            <input type="button" value="Add Customer"
            onclick="window.location.href='showFormForAdd';return false;"
            class="add-button"          />


            <table>
               <tr>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Email</th>
              </tr>

               <!-- ${tempCustomer.id}
                -->
               <c:url var = "updateLink" value="/customer/showFormForUpdate">
               <c:param name="customerId" value="${tempCustomer.id}"></c:param>
               </c:url>

               <c:forEach var="tempCustomer" items="${customers}">

                 <tr>
                    <td> ${tempCustomer.firstName} </td>
                    <td> ${tempCustomer.lastName} </td> 
                    <td> ${tempCustomer.email} </td>
                    <td> ${tempCustomer.id} </td>



                    <td>    <a href="${updateLink}">Update</a> </td>


               </c:forEach>

            </table>


            </div>

        </div>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

       <c:url var = "updateLink" value="/customer/showFormForUpdate">
           <c:param name="customerId" value="${tempCustomer.id}"></c:param>
       </c:url>

       <c:forEach var="tempCustomer" items="${customers}">

         <tr>
            <td> ${tempCustomer.firstName} </td>
            <td> ${tempCustomer.lastName} </td> 
            <td> ${tempCustomer.email} </td>
            <td> ${tempCustomer.id} </td>

您在 c:forEach 中定义了 tempCustomer 变量。它只存在于c:forEach的范围内。将 c:url 块移到 c:forEach。