檢查 <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 第 8 版開始,<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,接受新的規格定義的行為。

如需相關資訊,請參閱: