JavaServer 页面特定的 Web 容器定制属性
您可以配置名称/值数据对,其中名称是属性键,而值是可用于设置内部系统配置属性的字符串值。可以通过定义新属性来对管理控制台中未提供的设置进行配置。
- com.ibm.ws.jsp.getparameterreturnemptystring
- com.ibm.ws.jsp.jdksourcelevel
- com.ibm.ws.jstl.allowLenientDateParsing
- com.ibm.wsspi.jsp.allowjspoutputelementmismatch
- com.ibm.wsspi.jsp.allowtaglibprefixusebeforedefinition
- com.ibm.wsspi.jsp.allowtaglibprefixredefinition
- com.ibm.wsspi.jsp.allowunmatchedendtag
- com.ibm.wsspi.jsp.evalquotedandescapedexpression
- com.ibm.wsspi.jsp.modifyPageContextVariable
- com.ibm.wsspi.jsp.recompilejsponrestart
- com.ibm.wsspi.jsp.usecdatatrim
- com.ibm.wsspi.jsp.usescriptvardupinit
- com.ibm.wsspi.jsp.usestringcast
- com.ibm.wsspi.jsp.reusepropertygroupconfigoninclude
com.ibm.ws.jsp.getparameterreturnemptystring
使用此定制属性可以帮助迁移 V5.1 应用程序。
如果 JSP 文件包含未在该文件中设置的操作,那么 JSP 引擎将返回空值。在 V5.1 中,如果 JSP 文件包含未在该文件中设置的操作,那么 JSP 引擎会返回空字符串。如果您需要应用程序继续返回空字符串,请将此属性添加到 JSP 设置中并将其设置为 true。此属性设置为 true 时,对 jsp:getProperty 的调用所返回的值为空字符串,而不是空值。
- Name
- com.ibm.ws.jsp.getparameterreturnemptystring
- 值
- 布尔值
com.ibm.ws.jsp.jdksourcelevel
使用此属性可以通过管理控制台设置 JDK 源代码级别。
可以对不同级别的 JDK 配置 JSP 引擎参数。但是,设置 JSP 参数要求您每个 Web 模块的 Web 扩展文件中设置 JSP 属性 jdksourcelevel。可以使用 com.ibm.ws.jsp.jdk.jdksourcelevel 定制属性将 JSP 属性设置为全局使用 Web 容器定制属性。如果也在 Web 扩展文件中定义了此特性,那么在 Web 扩展文件中定义的属性将取代适用于该特定应用程序的定制属性。此定制属性不区分大小写。
缺省值为 17。
- Name
- com.ibm.ws.jsp.jdksourcelevel
- 值
- 13、14、15、16、17 或 18
com.ibm.wsspi.jsp.allowjspoutputelementmismatch
前发行版中的 CTS 需求不适用于产品,因此 JSP 容器支持 jsp:output 元素中属性的多个实例。在当前发行版中,CTS 一致性要求 JSP 容器严格强制执行关于 jsp:output 元素中属性的多个实例的规则。 可以使用 com.ibm.wsspi.jsp.allowjspoutputelementmismatch 定制属性放宽规则的强制执行,以实现与较早版本的兼容性。
- Name
- com.ibm.wsspi.jsp.allowjspoutputelementmismatch
- 值
- 布尔值
com.ibm.ws.jstl.allowLenientDateParsing
<fmt:parseDate value="20070311 02:00:00 AM"
var="myTestDate"
type="date"
pattern="yyyyMMdd HH:mm:ss a" />
java.text.ParseException: Unparseable date: "20070311 02:00:00 AM"
at java.text.DateFormat.parse(DateFormat.java:349) at
org.apache.taglibs.standard.tag.common.fmt.ParseDateSupport.doEn dTag(ParseDateSupport.java:178)
at com.ibm._jsp._testDate._jspx_meth_fmt_parseDate_0(_jstlDate.java :123)
at com.ibm._jsp._testDate._jspService(_jstlDate.java:86) ... 28 more
如果要允许在特定应用程序中使用 parseDate 标记时对日期进行更多容错解析,请将 com.ibm.ws.jstl.allowLenientDateParsing 属性作为上下文参数添加至该应用程序的 web.xml 文件并将此参数设置为 true。
以下是如何在 web.xml 文件中将此属性指定为上下文参数的示例:
<context-param>
<param-name>com.ibm.ws.jstl.allowLenientDateParsing</param-name>
<param-value>true</param-value>
</context-param>

com.ibm.wsspi.jsp.allowtaglibprefixusebeforedefinition
CTS 一致性要求,必须先出现对前缀进行定义的标记库伪指令,然后才能在定制标记中使用该前缀。在前发行版中,此规则不是强制执行的,因为 CTS 需求不是必需的。但是,可以使用 com.ibm.wsspi.jsp.allowtaglibprefixusebeforedefinition 定制属性放宽规则的强制执行,以实现与较早版本的兼容性。
- Name
- com.ibm.wsspi.jsp.allowtaglibprefixusebeforedefinition
- 值
- 布尔值
com.ibm.wsspi.jsp.allowtaglibprefixredefinition
CTS 一致性要求,如果已在 JSP 中使用不同的 URI 来定义标记库前缀,那么产品必须生成转换错误。在前发行版中,此规则不是强制执行的,因为 CTS 需求不是必需的。但是,可以使用 com.ibm.wsspi.jsp.allowtaglibprefixredefinition 定制属性放宽规则的强制执行,以实现与较早版本的兼容性。
- Name
- com.ibm.wsspi.jsp.allowtaglibprefixredefinition
- 值
- 布尔值
com.ibm.wsspi.jsp.allowunmatchedendtag
使用此定制属性可以帮助迁移 V5.1 应用程序。
如果结束标记不正确终止,那么将创建转换异常。在 V5.1 产品中,会忽略结束标记的不正确终止。如果要从 V5.1 迁移包含不正确终止的结束标记的应用程序,那么可以将此定制属性添加到 Web 容器设置中,并且如果不希望结束标记不正确地终止时发出转换异常,请将其设置为 true。
此属性设置为 true 时,将对服务器中的所有应用程序启用该功能。如果要对特定应用程序启用此功能,请在该特定应用程序的扩展文件中指定 JSP 属性 allowUnmatchedEndTag。
- Name
- com.ibm.wsspi.jsp.allowunmatchedendtag
- 值
- 布尔值
com.ibm.wsspi.jsp.evalquotedandescapedexpression
使用此属性可以编译包含表达式的函数。已修改 JSP 转换代码以便在确定是要计算表达式还是将其视为文字串时,正确地处理转义字符和引号。要在所有 Web 应用程序中全局应用此行为,请将下列“名称/值”对添加为 Web 容器定制属性。
- Name
- com.ibm.wsspi.jsp.evalquotedandescapedexpression
- 值
- 布尔值
要对单个应用程序启用此新行为,您还必须将 JSP 属性 evalquotedandescapedexpression 添加到失败应用程序的 ibm-web-ext.xmi 或 ibm-web-ext.xml 文件中,并将值设置为 true。
<jspAttributes xmi:id="JSPAttribute_1" name="evalquotedandescapedexpression" value="true"/>

<?xml version="1.0" encoding="UTF-8"?>
<web-ext
xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
version="1.0">
<jsp-attribute name="evalquotedandescapedexpression" value="true" />
<reload-interval value="3"/>
<auto-encode-requests value="true"/>
<auto-encode-responses value="true"/>
<enable-directory-browsing value="true"/>
<enable-file-serving value="true"/>
<pre-compile-jsps value="true"/>
<enable-reloading value="true"/>
<enable-serving-servlets-by-class-name value="true" />
</web-ext>


然而,Java EE 5 或更高版本的模块可以在包含 Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中存在。
ibm-webservices-ext.xmi、ibm-webservices-bnd.xmi、ibm-webservicesclient-bnd.xmi、ibm-webservicesclient-ext.xmi 和 ibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。
sptcfgcom.ibm.wsspi.jsp.modifyPageContextVariable
在已编译标记文件的转换阶段期间,JSP 容器会隐式地将 pageContext 变量用于 PageContext 对象。将 pageContext 变量用作标记文件中的隐式变量名称,不符合 JSP 规范。
对于在其标记文件中使用局部 pageContext 变量的应用程序,如果发生编译错误,请将 com.ibm.wsspi.jsp.modifyPageContextVariable 定制属性设置为 true,以在标记文件的生成 Java 代码中取消使用 pageContext 变量名称。
- Name
- com.ibm.wsspi.jsp.modifyPageContextVariable
- 值
- 布尔值
com.ibm.wsspi.jsp.recompilejsponrestart
此属性将强制运行时编译的 JSP 文件在每次重新启动应用程序时重新进行编译。如果切换底层 JSF 实现,那么此属性很有用。最好是在开发环境上使用此属性。
- Name
- com.ibm.wsspi.jsp.recompilejsponrestart
- 值
- 布尔值
com.ibm.wsspi.jsp.usecdatatrim
使用此定制属性可以帮助迁移 V5.1 应用程序。
如果 JSP 文件在不同的行上包括嵌套标记,那么额外的行将出现在为 JSP 文件的这些部分生成的 Java 代码中。之所以这些额外的行将添加到所生成的 Java 代码中,是因为创建 CDATA 部分前未删除文本。
如果使用双引号 (") 将所有行附加到一行中,或者在创建 CDATA 部分前,您使用此属性启用对文本的删除操作,那么可以移除这些额外的行。在创建 CDATA 部分前删除文本将移除所生成的 Java 代码中多余的空格。
此属性添加至 Web 容器设置并设置为 true 时,将对服务器中的所有应用程序启用该功能。如果要对特定应用程序启用此功能,请在该特定应用程序的扩展文件中指定 JSP 属性 useCDataTrim。
- Name
- com.ibm.wsspi.jsp.usecdatatrim
- 值
- 布尔值
com.ibm.wsspi.jsp.usescriptvardupinit
为 JSP 文件生成的代码假定在 If-Else 条件中将相同的标记变量声明两次或多次,即使变量具有 page 范围也是如此。定制属性 com.ibm.wsspi.jsp.usescriptvardupinit 用于对特定服务器上部署的所有应用程序启用此功能。如果只有特定应用程序需要此兼容性功能,请启用 JSP 属性 useScriptVarDupInit。如果同时设置了这两个选项,那么 JSP 特性优先于 Web 容器定制属性。
- Name
- com.ibm.wsspi.jsp.usescriptvardupinit
- 值
- 布尔值
com.ibm.wsspi.jsp.reusepropertygroupconfigoninclude

- Name
- com.ibm.wsspi.jsp.reusepropertygroupconfigoninclude
- 值
- false
com.ibm.wsspi.jsp.usestringcast
使用此定制属性可以帮助迁移 V5.1 应用程序。
调用 request.getAttribute 方法时,为 JSP 文件生成的 Java 源代码不会针对字符串类型的返回类型添加“implicit”强制类型转换。 如果 JSP 文件包含其相对路径未求值为字符串的资源,那么包含会失败,因为包含只接受字符串作为资源的相对路径。此行为与 V5.1 中的行为有所不同。
如果要迁移包含 request.getAttribute 方法的 V5.1 应用程序,那么可以将此属性添加至 Web 容器设置并将其设置为 true。此属性设置为 true 时,JSP 编译器会在执行包含操作前以显式方式将“String cast”添加至资源的相对路径。
此属性添加至 Web 容器设置并设置为 true 时,将对服务器中的所有应用程序启用该功能。如果要启用此功能,请在特定应用程序的扩展文件中指定 JSP 属性 useStringCast。
- Name
- com.ibm.wsspi.jsp.usestringcast
- 值
- 布尔值