会编程的皮卡丘  

今天在做商城页面,遇到问题:

<%@include file="menu.jsp" %>

错误提示:

Multiple annotations found at this line:
 - Duplicate local variable path
 - Duplicate local variable 
  basePath

重复变量,

 

改成: <jsp:include page="menu.jsp"> 也不行

 

查资料:

因为<%@include%>引进的是代码,把代码包含进来,而新进JSP时,会默认生成

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<base href="<%=basePath%>">

这二句代码,所以用<%@include%>引进页面是就报重复变量 basePath

解决方法,把要引进页面的重复的句子去掉就行,

 

另外:

查询到 <%@ include file=""%>与<jsp:include page=""/> 的区别: 

一、执行时间上: 
<%@ include file=”relativeURI”%> 是在翻译阶段执行 
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行。 
二、二:引入内容的不同: 
<%@ include file=”relativeURI”%> 引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起。 
<jsp:include page=”relativeURI” flush=”true” /> 引入执行页面或servlet所生成的应答文本。

 

翻译:  JSP容器负责将jsp页面转化成servlet,并编译这个servlet。

 

posted on 2018-01-07 10:28  会编程的皮卡丘  阅读(1027)  评论(0编辑  收藏  举报