如何忽略特定JSP文件的编译错误?
如何忽略特定JSP文件的编译错误?
业务背景
- 出于业务需求,要重写其他服务定义的标签,用内部页面组装逻辑实现。
碰到的问题
- 出现
unterminated form jag编译错误,但页面组装服务会合并表单后再发给客户端,所以得忽略该JSP文件的这个错误。 - 报错信息:
[jasper] At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[jasper] Compilation error
[jasper] Error count: [1]
已试过但没用的方法
<%-- @SuppressWarnings("jasper") --%><%-- @ignoreCompilationErrors --%><%@ suppressError jasper="true" %>
可行的解决办法
1. 局部配置JSP编译规则(推荐)
在项目的web.xml里添加jsp-config节点,针对目标JSP文件关闭特定编译检查:
<jsp-config> <jsp-property-group> <!-- 指定要忽略错误的JSP路径 --> <url-pattern>/your/path/target.jsp</url-pattern> <!-- 关闭未声明命名空间的错误提示 --> <error-on-undeclared-namespace>false</error-on-undeclared-namespace> <!-- 若还有其他语法错误,可添加对应关闭参数 --> </jsp-property-group> </jsp-config>
2. 临时注释未闭合代码(配合组装逻辑)
把未闭合的表单部分用JSP注释包裹,页面组装时再移除这个注释:
<%-- 临时注释未闭合表单,组装服务需移除该注释 --%> <%-- <form action="/submit"> --%>
3. 全局调整编译器参数(谨慎使用)
如果用Tomcat的Jasper编译器,可在conf/web.xml的jsp servlet中添加编译参数忽略所有lint错误,但这会影响所有JSP,仅当局部配置无效时尝试:
<servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>compilerOptions</param-name> <param-value>-Xlint:-all</param-value> </init-param> </servlet>
内容的提问来源于stack exchange,提问作者VIVEK SHARMA
相关产品推荐
相关产品推荐

