檢查 <is-xml> 和 <page-encoding> 選項之 JSP 配置中的行為變更

此規則會標示 <is-xml> <page-encoding> 在中找到 JSP 配置選項 <jsp-property-group> of the web.xml 檔。

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 容許新的規格定義行為。

如需相關資訊,請參閱: