包括基于某些条件的jsp页面

时间:2011-02-11 11:33:23

标签: spring-mvc jstl

我在jsp页面中使用了spring标签。

现在我遇到了使用表单的情况:选择下拉列表。

如果我在下拉列表中选择第一个值,则应该显示“normal.jsp”页面。如果我选择第二个值“reverse.jsp”页面应该显示。

这两个jsp页面都应显示在下拉列表下方的主页面中。

在jsp中实现这一目标的最佳方法是什么?

我正在尝试使用jstl标签,但表单未显示。

这是我写的代码

    <tr>
        <td>Types of Auction :-</td>
        <td>
            <form:select id="auctionType" path="auctionType">
                <form:option value="0" label="Select" />
                <form:options items="${auctionTypesList}" itemValue="auctionTypeId" itemLabel="auctionTypeDesc" />
            </form:select>
        </td>
    </tr>
    <tr>
        <td>
            <c:choose>
                <c:when test="${param.auctionType == 1}">
                    <c:import url="/normalAuction.jsp" var="normal"/>
                </c:when>
                <c:when test="${param.auctionType == 2}">
                    <c:import url="/reverseAuction.jsp" var="reverse"/>
                </c:when>
            </c:choose>
        </td>
    </tr>

有人能让我知道我哪里错了吗?

由于

2 个答案:

答案 0 :(得分:0)

如果您的表单没有显示,可能您没有导入spring-mvc表单taglib:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

这是强制性的,否则你最终会得到&lt; form:whatever ...&gt; HTML输出中的标记。

至于基于请求参数导入JSP,通过根据用户输入返回不同的视图,可以更好地在控制器中处理,因为这实际上是一个控制器任务而不是视图。

答案 1 :(得分:0)

您在页面中使用了表达式语言${}。检查是否包含标记lib

标题中的

<%@ page isELIgnored ="true|false" %>。 True表示忽略EL,false表示不忽略EL标记。所以放false

当您使用chose代码和when作为其子标记时,这些代码必须是otherwise代码。

 <choose>
    <when condition>Page_1.jsp
    </when>
    <when condition_2>Page_other.jsp
    </when>
    <otherwise>Page_2.jsp
    </otherwise>
 </chose>