JSP 使用<%@include%>报Duplicate local variable path 错误 解决方法

错误提示:
Multiple annotations found at this line:
- Duplicate local variable path
- Duplicate local variable 
basePath

重复变量,
因为<%@include%>引进的是代码,把代码包含进来,而新进JSP时,会默认生成
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<base href="<%=basePath%>">
这二句代码,所以用<%@include%>引进页面是就报重复变量 basePath 
解决方法,把要引进页面这句去掉就行.

对于静态包含,<%@include%>,中包含的文件,只是简单的嵌入到主文件中,就是在jsp页面转化成Servlet时才嵌入到主文件中,因为运行的结果是只生成了一个Servlet。

而对于动态包含<jsp:incude>,如果被包含文件是动态的,那么就会生成两个Servlet,也就是被包含文件也要经过jsp引擎编译执行生成一个Servlet,两个Servlet通过request和reponse进行通信。如果被包含的文件是静态的,那么这种情况和<%@include>就很相似,只生成了一个Servlet,但是他们之间没有进行简单的嵌入,而依然是通过request和reponse进行的通信。

时间: 2024-07-31 07:27:21

JSP 使用<%@include%>报Duplicate local variable path 错误 解决方法的相关文章

Win7x64中使用VS调试WEB项目报“ORA-06413: 连接未打开”错误解决方法

错误描述 普通Web项目,Web项目在32位系统上跑的好好的,一点问题没有. 使用VS内置的开发服务器调试,页面能正常启动,但一连接数据库就报“ORA-06413: 连接未打开”错误. 使用IIS Express或IIS服务器,启动时报错:HTTP 错误 500.21 - Internal Server Error,处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”. 在上述问题解决后,又报一个错误:

在用 &lt;%@include file=&quot;date.jsp&quot; %&gt; &quot;date.jsp&quot;老提示出错,错误为: Multiple annotations found at this line: - Duplicate local variable path - Duplicate local variable basePath 该怎么解决呢?

重复变量 date.jsp文件内部不应该再出现重复的变量定义 也就是<%@include%>是先把文件源代码一模一样的拷贝过来,然后才开始编译 所以如果有相同的变量肯定报错 用了动态的<jsp: include file="top.jsp" />的就正确了 因为<%@include%>引进的是代码,把代码包含进来,而新进JSP时,会默认生成 <% String path = request.getContextPath(); String ba

[问题]编译报错:clang: error: linker command failed with exit code 1及duplicate symbol xxxx in错误解决方法之一

今天添加了一个新类(包括m,h,xib文件),还没有调用,-编译遇到如下错误,根据错误提示, duplicate symbol param1 in: /Users/xxxx/Library/Developer/Xcode/DerivedData/xxxx-ccqyiywbeowkgmaitropkiovpeou/Build/Intermediates/xxxx.build/Debug-iphonesimulator/xxxx.build/Objects-normal/x86_64/ClassA.

NodeJs异步上传multer插件报Multipart: Boundary not found错误解决方法

NodeJs-express架构下实现文件上传两大利器: 1.前端异步插件h5uploader https://github.com/expressjs/multer 2.后端处理multer https://github.com/wewoor/h5uploader 前后端分别使用这两个组件分分钟就能实现文件上传,功能强大,代码简洁,使用方法我就不多说了,看下github就知道了.很简单. 但最近由于multer更新了版本,使用这两款插件会报错,前端插件h5uploader没做处理.因此我贴出解

composer 报proc_open(): fork failed errors 错误解决方法

PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar 原因由于虚拟机分配的内存太少,而导致没有可用内存打开文件 free -m total used free shared buffers cached Mem: 2048 357 1690 0 0 237 -/+ buffers/cache: 119

jsp的&lt;%@ include file=&quot;jsp/common.jsp&quot; %&gt;报错误Duplicate local variable basePath

将公共引入的文件放到common.jsp中,其他页面引入该jsp即可使用 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme() + "://" 5 +

Oracle 11g安装报错Environment variable: "PATH"

Environment variable: "PATH" - This test checks whether the length of the environment variable "PATH" does not exceed the recommended length.预期值 : 1023实际值 : 1245 PRVF-3929 : Adding the Oracle binary location to the PATH environment var

项目部署到tomcat6.0启动成功后访问页面报500错误解决方法

如题:项目部署到tomcat6.0启动成功后访问页面报500错误解决方法,很奇葩,启动的时候没有任何问题,但输入访问地址后报500,去年国庆放假前夕,为这个问题伤神了半天最后解决了,今天又碰到了,乍一看摸不着头,后面仔细回想了下,迅速解决了问题. 原因:项目里面的jar和tomcat里面lib里面的jar重复了. 解决方法: 1.要么更换tomcat7或之后的版本,之后的版本就不会出现这个问题. 2.去部署之后的tomcat的webapps\项目名\WEB-INF\lib 里面删掉jsp-api

linux上的mysql报Table &#39;xxx&#39; doesn&#39;t exist的错误解决方法

linux上的mysql报Table 'xxx' doesn't exist的错误解决方法 问题:程序报Table 'xxx' doesn't exist 的错误,但是查看数据库发现该表已经存在且字母也没有拼错. 原因:linux 上的mysql 默认是区分大小写导致的. 解决:改动mysql的配置文件,在my.cnf中的[mysqld]下面(位置不能错)加上lower_case_table_name=1这句(1表示不区分大小写,0区分大小写),保存重新启动mysql. 没有my.cnf文件,如