我想在JSP 2.0标记文件中禁用scriptlet和表达式。 我已成功地在JSP文件中禁用了scriptlet和表达式,但我仍然可以在JSP中使用的标记文件中使用scriptlet。
我在web.xml中已经厌倦了但是没有效果:
<jsp-config>
<jsp-property-group>
<url-pattern>*.tag</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config>
以上适用于JSP文件(如果url-pattern更改为* .jsp)但似乎不适用于标记文件。
我的所有标记文件都与模式* .tag匹配。
我正在使用Apache Tomcat 6.0.32。
为了清楚起见,JSP scriptlet和表达式是我们今天应该做的邪恶的内联Java代码,例如:
<% scriptlets %>
<%= expression %>
非常感谢。
答案 0 :(得分:2)
我认为我有同样的问题:我想为.tag文件使用包含前奏功能,并且我以与您相同的方式配置选项组。
我在JspConfig.findJspProperty()
中找到了tomcat源代码中的负责代码(至少在我的tomcat 7.0.22中):
// JSP Configuration settings do not apply to tag files
if (jspProperties == null || uri.endsWith(".tag")
|| uri.endsWith(".tagx")) {
return defaultJspProperty;
}
defaultJspProperty
的定义如下:
defaultJspProperty = new JspProperty(defaultIsXml,
defaultIsELIgnored,
defaultIsScriptingInvalid,
null, null, null,
defaultDeferedSyntaxAllowedAsLiteral,
defaultTrimDirectiveWhitespaces,
defaultDefaultContentType,
defaultBuffer,
defaultErrorOnUndeclaredNamespace);
其中defaultIsScriptingInvalid为null,对于mye,prelude直接指定为null参数。
这解释了我们的问题,但我找不到它以这种方式实施的原因......
答案 1 :(得分:-2)
尝试