检查 <is-xml> 和 <page-encoding> 选项的 JSP 配置的行为更改

此规则会标记在 web.xml 文件的 <jsp-property-group> 中找到的 <is-xml><page-encoding> JSP 配置选项。

jsp-config-property 示例:
<jsp-config>
<jsp-property-group>
<display-name>JSPSampleConfig</display-name>
<url-pattern>*.jsp</url-pattern>
<page-encoding>ISO-8859-1</page-encoding>
<is-xml>false</is-xml>
<include-prelude>prelude.jspf</include-prelude>
</jsp-property-group>
</jsp-config>

已在这些配置选项如何应用到所包括的 JSP 文件方面,阐明了 JSP 规范。 从 WebSphere Application Server V8 开始,<is-xml><page-encoding> 配置选项仅适用于那些匹配 URL 模式的 JSP 文件,但不适用于包括的 JSP 文件(除非这些文件也匹配 URL 模式)。

在前发行版中,如果一个 JSP(例如 prelude 或 coda)包括在另一个与属性组匹配的 JSP 中,那么原始属性组设置也适用于所包括的文件。 JSP 属性组中定义的大多数属性适用于整个转换单元。 即,通过 URL 模式来匹配的所请求 JSP 文件,及其通过 include 伪指令来包含的所有文件。 不同之处在于 <page-encoding><is-xml> 属性,这些属性分别适用于通过 URL 模式来匹配的每个 JSP 文件。

配置选项会进行标记,这样,您就可以修正配置或者还原为先前行为。 要修正问题,请创建另一个 <jsp-property-group> 以匹配您想要应用配置的包括文件。

示例修正:
<jsp-config>
<jsp-property-group>
<display-name>JSPSampleConfig</display-name>
<url-pattern>*.jsp</url-pattern>
<page-encoding>ISO-8859-1</page-encoding>
<is-xml>false</is-xml>
<include-prelude>prelude.jspf</include-prelude>
</jsp-property-group>
<jsp-property-group>
<display-name>JSPFragments</display-name>
<url-pattern>*.jspf</url-pattern>
<page-encoding>ISO-8859-1</page-encoding>
<is-xml>false</is-xml>
</jsp-property-group>
</jsp-config>

Web 容器定制属性 com.ibm.wsspi.jsp.reusepropertygroupconfigoninclude 或 JSP 属性 reusePropertyGroupConfigOnInclude 可用于还原为旧行为。 将任一项设为 true 以还原行为。 此属性的缺省值为 false,这允许使用新规范定义的行为。

有关更多信息,请参阅: