在JSP中包含GET参数的子页面

时间:2011-12-02 15:19:57

标签: jsp include get

我正在学习JSP,我希望基于菜单链接生成的GET方法包含子页面(在div上命名为“content”)。

<div id="menu">
   <a href="/index.jsp?page=1">Subpage 2</a>
</div>
<div id="content>

   //include somehow subpage s2.sjp

</div>

我做过这样的事情:

    <%
            int par = 0;
            String which = "blank.jsp" ;
            if (request.getParameter("page") != null) {
                par = Integer.valueOf(request.getParameter("page"));
            }
                switch (par) {
                    case 0:
                        which = "blank.jsp";
                        break;
                    case 1:
                        which = "s2.jsp";
                        break;
                }

    %>

但我不确定这是否是在JSP中解决我的问题的正确方法。

1 个答案:

答案 0 :(得分:1)

您可以在<jsp:include>中使用EL

<jsp:include page="/WEB-INF/${param.page}.jsp" />

致电foo.jsp?page=bar${param.page}解析为bar,此<jsp:include>将有效地包含/WEB-INF/bar.jsp。无需对数字进行复杂的检查。只需使用文件名作为参数。

请注意,include JSP已被放置在/WEB-INF文件夹中,以防止最终用户通过有意或无意中在浏览器地址栏中调用其URL来直接打开它。

您可以将其放在JSTL <c:catch>中,以防止在文件不存在时抛出异常。