如何使用jsp:include和jsp:param显示不同的内容

时间:2013-06-27 22:10:18

标签: java jsp jsp-tags

我有两个版本的组件要根据url字符串显示,例如:

http://localhost/index.li?id=a

这应该显示版本1

http://localhost/index.li?id=b

这应该显示版本2

我被告知要做的是父jsp文件中的以下内容:

<jsp:include page="/somepage/components/acomponent.jsp">
        <jsp:param name="param1" value="value1"/>
        <jsp:param name="param2" value="value2"/>
</jsp:include>

我的问题是在我的acomponent.jsp中我用什么名称和值来切换版本?例如:

<div id="version1"></div>

<div id="version2"></div>

2 个答案:

答案 0 :(得分:2)

你可以从URI中获取id(使用JSTL或Scriptlets),然后将其传递到你的acomponent.jsp文件中。

<jsp:include page= "/somepage/components/acomponent.jsp">
    <jsp:param name="value1" value="<id you got off of the URI>"
</jsp:include>

然后,在你的acomponent.jsp文件中,你可以这样做:

<c:choose>
    <c:when test="${value1 eq 'a'}">
        --JSP CODE FOR WHEN A NEEDS TO BE USED
    </c:when>
    <c:otherwise>
        --JSP CODE FOR WHEN B NEEDS TO BE USED
    </c:otherwise>
</c:choose>

希望这有帮助。

答案 1 :(得分:0)

你不能使用&lt; c:选择&gt;?它必须只有jsp:include和jsp:param?