如何在Eclipse中的jsp片段文件中抑制警告(甚至错误)?
我将这个jspf包含在jsp文件的中间,但是jspf在包含之前依赖于代码中的变量。但是,即使一切正常,每次我验证我的代码时(在部署之前),Eclipse都会在jspf中标记错误。我可以放心地忽略错误并继续部署,但有没有办法通过该jspf文件中的抑制警告注释来删除该错误?
main.jsp中:
<%
String someVariable = "foo.bar";
%>
<% @ include file="WEB-INF/jspf/sample.jspf" %>
WEB-INF / JSPF / sample.jspf
<%
// shows unresolved local variable error when validated
// but can still deploy just fine if error is ignored
if(someVariable != null && someVariable.length() > 0)
out.println(someVariable);
%>
上面的示例非常简单,但不会直接从URL调用sample.jspf。它将始终包含在其他一些jsp文件中。现在如何在验证时删除Eclipse中的错误标记?
答案 0 :(得分:0)
sample.jspf
如何知道它将成为main.jsp
的一部分?
JSP最终转换为Scriplet .java文件,如下所示,它就像你使用的是一个未在任何地方声明的局部变量。
sample_jsp.java
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspWriter out = null;
...
out.write(someVariable); // local variable that is never declared
...
}
如果您不想使用JSTL,请尝试使用Scriplet,但根本不建议您使用它。首先在第一个JSP中将其设置为请求或会话属性,然后在另一个JSP中访问它。
main.jsp中:
<%
String someVariable = "foo.bar";
request.setAttribute("someVariable",someVariable);
%>
<% @ include file="WEB-INF/jspf/sample.jspf" %>
sample.jspf
<%
out.println(request.getAttribute("someVariable"));
%>
尽量避免使用scriplet,而是使用JSP Standard Tag Library和表达式语言。
main.jsp中:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="someVariable" value="foo.bar"/>
sample.jspf
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:if test="${not empty someVariable}">
<c:out value="${someVariable}"/>
<c:if>
答案 1 :(得分:0)
您可以在Scriptlet <% @SuppressWarnings("unchecked") %>
中使用它,请参阅此post。