我目前正在努力学习JSP.我的问题是,目前我曾经使用以下内容包含页面的页眉和页脚:
<%@include file="includes/header.jsp" %>
Run Code Online (Sandbox Code Playgroud)
和
<%@include file="includes/footer.jsp" %>
Run Code Online (Sandbox Code Playgroud)
但是现在,我也将页面内容分开了.因此,如果用户点击页面,比如说产品,则必须加载位于以下位置的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" %>
<% 
 }
%>
Run Code Online (Sandbox Code Playgroud)
那么,如何将变量"p"的值放在"page_name"的位置?
或者,还有其他方法可以使用吗?
在PHP中,我们可以使用include()或include_once().我有点陷入这个JSP.:(
JB *_*zet 227
你正在做的是静态包含.静态包含在编译时被解析,因此可能不使用参数值,该参数值仅在执行时已知.
您需要的是动态包括:
<jsp:include page="..." />
Run Code Online (Sandbox Code Playgroud)
请注意,您应该使用JSP EL而不是scriptlet.您似乎正在使用index.jsp实现中央控制器.您应该使用servlet来代替,并从此servlet调度到适当的JSP.或者更好,使用现有的MVC框架,如Stripes或Spring MVC.
vit*_*yoz 25
你可以使用这样的参数
<jsp:include page='about.jsp'>
    <jsp:param name="articleId" value=""/>
</jsp:include>
Run Code Online (Sandbox Code Playgroud)
和
在about.jsp中你可以参加
<%String leftAds = request.getParameter("articleId");%>
Run Code Online (Sandbox Code Playgroud)
        Jay*_*ang 16
您可以使用Include Directives
<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    
<%@include file="<%="includes/" + p +".jsp"%>"%>
<% 
 }
%>
Run Code Online (Sandbox Code Playgroud)
或JSP Include Action
<%
 if(request.getParameter("p")!=null)
 { 
   String p = request.getParameter("p");
%>    
<jsp:include page="<%="includes/"+p+".jsp"%>"/>
<% 
 }
%>
Run Code Online (Sandbox Code Playgroud)
不同的是include指令在翻译阶段包含一个文件.而JSP Include Action在请求页面时包含一个文件
我建议使用Spring MVC Framework作为操作系统的控制器.使用url模式而不是参数.
例:
www.yourwebsite.com/products
Run Code Online (Sandbox Code Playgroud)
代替
www.yourwebsite.com/?p=products
Run Code Online (Sandbox Code Playgroud)
观看此视频Spring MVC Framework
在页面转换时,include指令中给出的文件内容按原样"粘贴",在使用JSP include指令的位置.然后将源JSP页面转换为java servlet类.包含的文件可以是静态资源或JSP页面.通常,JSP include指令用于包含页眉横幅和页脚.
包含jsp文件的语法:
<%@ include file="relative url">
Run Code Online (Sandbox Code Playgroud)
例
<%@include file="page_name.jsp" %>
Run Code Online (Sandbox Code Playgroud)
        1. <a href="index.jsp?p=products">Products</a>当用户点击Products链接时,您可以直接调用products.jsp.
我的意思是你可以保持JSP文件的名称与参数值相同.
<%
 if(request.getParameter("p")!=null)
 { 
   String contextPath="includes/";
   String p = request.getParameter("p");
   p=p+".jsp";
   p=contextPath+p;
%>    
<%@include file="<%=p%>" %>
<% 
 }
%>
Run Code Online (Sandbox Code Playgroud)
要么
2.您可以使用键,值对维护外部资源文件.如下
products  : products.jsp
customer  : customers.jsp
您可以以编程方式从特性文件中检索JSP文件的名称.
这样您就可以轻松更改JSP文件的名称
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           455243 次  |  
        
|   最近记录:  |