抑制JSP文件中的Java未检查警告

抑制JSP文件中的Java未检查警告,java,generics,jsp,unchecked,Java,Generics,Jsp,Unchecked,我有一个使用jstl和Struts 1标记的遗留webapp。当我使用Java5/6预编译JSP文件时,jstl和Struts1标记会发出关于“未检查或不安全操作”的警告。例如,如果我使用以下标记: <%@ page import="/anotherpage.inc" %> 如果我使用-Xlint:unchecked重新编译,我将获得有关有问题的JSP标记库的内部工作的详细信息。我想抑制所有未检查的操作警告。我认为使用-Xlint:-unchecked可以抑制警告,但事实并非如此

我有一个使用jstl和Struts 1标记的遗留webapp。当我使用Java5/6预编译JSP文件时,jstl和Struts1标记会发出关于“未检查或不安全操作”的警告。例如,如果我使用以下标记:

<%@ page import="/anotherpage.inc" %>
如果我使用-Xlint:unchecked重新编译,我将获得有关有问题的JSP标记库的内部工作的详细信息。我想抑制所有未检查的操作警告。我认为使用-Xlint:-unchecked可以抑制警告,但事实并非如此

在编译JSP页面时,如何抑制这些警告?重新编码JSP标记库或更新一千个JSP页面是不实际的。我正在寻找一个编译器标志来全局禁用警告,这样我就可以看到除未检查的警告之外的所有警告。谢谢

你说得对

-Xlint:未选中

与你想要的相反,但你也可以使用

-Xlint:-未选中

请注意这里额外的“-”


这将禁用有关未检查操作的所有警告,不仅是由标记库生成的警告,还将显示其他警告。

禁用该警告的最佳方法是停止在JSP中使用Java代码。 开始习惯使用JSTL或JSF(根据需要使用自定义标记库)

但对于遗留应用程序,您很可能无法做到这一点,您只需要接受警告。 当然,您可以将-nowarn标志添加到编译器中,但这将禁用所有警告,而不仅仅是此警告,这可能超出您的需要。

这些消息是一个(JDK>=1.5必需的)注释,而不是警告

compiler.note.unchecked.plural=\
    Some input files use unchecked or unsafe operations.
默认编译器行为与
-Xlint:-unchecked
相同

使用
-Xlint:unchecked
打开警告,报告每个实例

compiler.warn.unchecked.assign=\
    [unchecked] unchecked assignment: {0} to {1}
...
强制注释不能单独禁用,它们都使用
-Xlint:none
禁用。不幸的是,其余警告也被禁用


您可以检查其他响应以寻找替代方案,但筛选编译器输出消息似乎是最简单的解决方案。

在该问题中,他们询问了一些可以添加到单个JSP以抑制警告的内容。我正在寻找一些全球性的东西。是的,我可以忽略警告,但我有几千个警告,我希望能够看到合法的警告(贬值的API等),以便我可以更正它们。这些警告是在IDE编译期间生成的吗?如果您使用的是Eclipse,那么可以关闭JSP验证@Windows>Preferences>validation。真正的答案是:“Java代码属于Java类,而不是JSP文件”。但既然你有几千个,我觉得很抱歉。实际上我已经试过了。如果使用Xlint:-未选中,则每个有问题的文件都会收到一次消息“使用Xlint:unchecked重新编译”。使用Xlint:unchecked,您会得到一条详细消息,其中包含违反unchecked规则的标记库的确切行号。我想完全禁用警告,而不仅仅是缩短警告的大小。-1-Xlint:-未选中是默认值。该标志一直显示注释。
compiler.warn.unchecked.assign=\
    [unchecked] unchecked assignment: {0} to {1}
...