Включение подстраниц по параметру GET в JSP - PullRequest
2 голосов
/ 02 декабря 2011

Я изучаю JSP и хочу включить подстраницу (в div с именем «content») на основе метода GET, созданного по ссылке меню.

<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 Ответ

1 голос
/ 02 декабря 2011

Вы можете просто использовать EL в <jsp:include>.

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

Вызов foo.jsp?page=bar позволит ${param.page} разрешить bar, и тогда <jsp:include> будет эффективновключают /WEB-INF/bar.jsp.Нет необходимости в сложных проверках на номера.Просто используйте имя файла в качестве параметра.

Обратите внимание, что включаемый JSP был помещен в папку /WEB-INF, чтобы конечные пользователи не могли открыть его напрямую, целенаправленно или случайно вызвав его URL в адресной строке браузера.

Вы можете поместить его в JSTL <c:catch>, чтобы исключить исключение, если файл не существует.

...