一尘不染

包括另一个JSP文件

jsp

我目前正在尝试学习JSP。我的问题是,目前,我以前使用以下方式包含页面的页眉和页脚:

<%@include file="includes/header.jsp" %>

<%@include file="includes/footer.jsp" %>

但是现在,我也将页面内容分开了。因此,如果用户单击某个页面(例如产品),则必须加载位于以下位置的JSP文件:includes/pages/products.jsp
因此,到用户的链接就像:<a href="index.jsp?p=products">Products</a>

因此,我必须获取p值并基于它显示页面。

以下是我到目前为止所做的事情。

<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>

<%@include file="includes/page_name.jsp" %>

<% 
 }
%>

那么,如何将变量“ p”的值放在“ page_name”的位置?

或者,还有其他我可以使用的方法吗?

在PHP中,我们可以使用include()include_once()。我对这个JSP有点困惑。:(


阅读 241

收藏
2020-06-08

共1个答案

一尘不染

您正在执行的是静态包含。静态包含将在编译时解析,因此可能不使用仅在执行时才知道的参数值。

您需要的是动态包括:

<jsp:include page="..." />

注意,您应该使用JSP
EL而不是scriptlet。似乎您正在用index.jsp实现中央控制器。您应该使用servlet代替,并从该servlet调度到适当的JSP。或者更好的方法是使用现有的MVC框架,例如Stripes或Spring
MVC。

2020-06-08