Displaytag使用参数值调用servlet

时间:2014-11-16 15:50:18

标签: jsp servlets tomcat7

我在jsp-web应用程序中使用显示标记库来显示以下应用程序用户:

        <display:table name="requestScope.users" pagesize="5" requestURI=""
                       export="true" sort="list" uid="one" keepStatus = "true">
            <display:column property="lastName" title="Last Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="firstName" title="First Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="userName" title="Username" 
                            sortable="true" headerClass="sortable" />
            <display:column property="emailAddress" title="Last Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="userType" title="Last Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="userID" title="ID"  autolink="true"  href="${pageContext.request.contextPath}/deleteUser?userID=${user.userID}"
                            sortable="true" headerClass="sortable" />
        </display:table> 

我正在使用最后一个显示:column元素作为我的servlet的链接,并尝试将userID作为参数传递给它。虽然访问了servlet,但在尝试使用表达式语言时不会传递参数!知道我怎么能让这个东西上班吗?

使用:jdk-7u51 Windows7 Tomcat 7.0.52 Netbeans 7.4 Oracle XE11g2

1 个答案:

答案 0 :(得分:0)

在徘徊之后,注意到很多人都有同样的问题。 很可惜,上面生成的表将始终作为参数传递给用户列表中的第一个userId。

有两种建议的解决方案可以使用displaytag生成动态链接,如下所示:

http://demo.displaytag.org/displaytag-examples-1.1/example-decorator-link.jsp

使用类似struts的方法我添加了'paramId'和'paramProperty',如下所示

            <display:table name="${users}" pagesize="5" requestURI=""
                       export="true" sort="list" uid="one" keepStatus = "true">
            <display:column property="lastName" title="Last Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="firstName" title="First Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="userName" title="Username" 
                            sortable="true" headerClass="sortable" />
            <display:column property="emailAddress" title="Last Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="userType" title="Last Name" 
                            sortable="true" headerClass="sortable" />
            <display:column property="userID" title="ID"  autolink="true"  paramId="userID" paramProperty="userID" href="${pageContext.request.contextPath}/deleteUser"
                            sortable="true" headerClass="sortable" />
                </display:table> 

并将正确的值传递给servlet。希望这有助于其他人