2011-12-02 84 views
1

我正在學習JSP,並且我想基於由菜單鏈接生成的GET方法包含子頁面(在名爲「內容」的div上)。在JSP中包含通過GET參數的子頁面

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

    //include somehow subpage s2.sjp 

</div> 

我somethink幹過這樣的:

<% 
      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

您只能在<jsp:include>中使用EL

<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>以防止引發異常。