Propriétés personnalisées de conteneur Web spécifiques de JavaServer Pages
Vous pouvez configurer des paires de données nom-valeur arbitraires, où le nom est une clé de propriété et la valeur une chaîne, pouvant être utilisées pour définir des propriétés de configuration du système interne. Vous pouvez définir une nouvelle propriété pour configurer un paramètre sans se limiter aux éléments disponibles dans la console d'administration.
- 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
Cette propriété personnalisée facilite la migration des applications de la version 5.1.
Si un fichier JSP contient une action qui n'est pas définie dans un fichier JSP, le moteur JSP renvoie la valeur null. Dans la version 5.1, si un fichier JSP contient une action qui n'est pas définie dans un fichier JSP, le moteur JSP renvoyait une chaîne vide. Si vous avez besoin que vos applications continuent de renvoyer une chaîne vide, ajoutez cette propriété à vos paramètres JSP et attribuez-lui la valeur true. Lorsque cette propriété a la valeur true, la valeur renvoyée sur un appel de jsp:getProperty est une chaîne vide et non la valeur null.
- Nom
- com.ibm.ws.jsp.getparameterreturnemptystring
- Value
- Booléen
com.ibm.ws.jsp.jdksourcelevel
Utilisez cette propriété pour définir le niveau source JDK via la console d'administration.
Un paramètre de moteur JSP peut être configuré pour différents niveaux de JDK. Toutefois, la définition d'un paramètre JSP nécessite que vous définissiez l'attribut JSP jdksourcelevel dans le fichier d'extensions Web pour chaque module Web. Vous pouvez cependant utiliser la propriété personnalisée com.ibm.ws.jsp.jdksourcelevel pour définir l'attribut JSP globalement à l'aide de la propriété personnalisée de conteneur Web. Si cet attribut est également défini dans le fichier d'extensions Web, la propriété définie dans ce même fichier remplace la propriété personnalisée pour cette application particulière. Cette propriété personnalisée est insensible à la casse des caractères.
La valeur par défaut est 17.
- Nom
- com.ibm.ws.jsp.jdksourcelevel
- Value
- 13, 14, 15, 16, 17 ou 18
com.ibm.wsspi.jsp.allowjspoutputelementmismatch
Dans les versions précédentes, les exigences CTS n'étaient pas applicables au produit et, par conséquent, le conteneur JSP prenait en charge plusieurs occurrences de propriétés dans l'élément jsp:output. Dans la version actuelle, la conformité CTS exige que le conteneur JSP applique strictement les règles relatives aux occurrences de propriétés multiples dans l'élément jsp:output. Vous pouvez utiliser la propriété personnalisée com.ibm.wsspi.jsp.allowjspoutputelementmismatch en vue d'appliquer la règle pour la compatibilité avec les versions antérieures.
- Nom
- com.ibm.wsspi.jsp.allowjspoutputelementmismatch
- Value
- Booléen
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
Si vous souhaitez autoriser une analyse moins stricte de la date lors de l'utilisation de la balise parseDate dans une application spécifique, ajoutez la propriété com.ibm.ws.jstl.allowLenientDateParsing en tant que paramètre de contexte au fichier web.xml pour cette application et attribuez la valeur true à ce paramètre.
Vous trouverez ci-dessous un exemple indiquant comment définir cette propriété en tant que paramètre de contexte dans un fichier 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
Pour la compatibilité CTS, une directive de bibliothèque de balises définissant un préfixe doit exister afin que le préfixe puisse être utilisé dans une balise personnalisée. Cette règle n'était pas appliquée dans les éditions antérieures car les exigences CTS n'étaient pas requises. Toutefois, vous pouvez utiliser la propriété personnalisée com.ibm.wsspi.jsp.allowtaglibprefixusebeforedefinition en vue d'appliquer la règle pour la compatibilité avec les versions antérieures.
- Nom
- com.ibm.wsspi.jsp.allowtaglibprefixusebeforedefinition
- Value
- Booléen
com.ibm.wsspi.jsp.allowtaglibprefixredefinition
Pour la conformité CTS, si un préfixe de bibliothèque de balises est déjà défini avec un URI différent dans un JSP, le produit doit créer une erreur de conversion. Cette règle n'était pas appliquée dans les éditions antérieures car les exigences CTS n'étaient pas requises. Toutefois, vous pouvez utiliser la propriété personnalisée com.ibm.wsspi.jsp.allowtaglibprefixredefinition en vue d'appliquer la règle pour la compatibilité avec les versions antérieures.
- Nom
- com.ibm.wsspi.jsp.allowtaglibprefixredefinition
- Value
- Booléen
com.ibm.wsspi.jsp.allowunmatchedendtag
Cette propriété personnalisée facilite la migration des applications de la version 5.1.
Lorsqu'une terminaison incorrecte des balises de fin est détectée, une exception de conversion est créée. Dans la version 5.1 du produit, une terminaison incorrecte des balises de fin était ignorée. Si vous migrez des applications de la version 5.1 qui comportent des balises de fin ayant une terminaison incorrecte, vous pouvez ajouter cette propriété personnalisée à vos paramètres de conteneur Web et lui attribuer la valeur true si vous ne souhaitez pas qu'une exception de conversion soit émise lorsque la terminaison des balises de fin est incorrecte.
Lorsque cette propriété a la valeur true, cette fonctionnalité est activée pour toutes les applications du serveur. Si vous souhaitez activer cette fonctionnalité pour une application spécifique, indiquez l'attribut JSP allowUnmatchedEndTag dans le fichier d'extensions de cette application spécifique.
- Nom
- com.ibm.wsspi.jsp.allowunmatchedendtag
- Value
- Booléen
com.ibm.wsspi.jsp.evalquotedandescapedexpression
Cette propriété permet de compiler les fonctions qui contiennent une expression. Le code de conversion JSP a été modifié en vue de gérer correctement les caractères d'échappement et les apostrophes au moment de déterminer si une expression doit être évaluée ou traitée comme chaîne littérale. Pour appliquer ce comportement globalement à toutes les applications Web, ajoutez la paire nom-valeur suivante en tant que propriété personnalisée de conteneur Web.
- Nom
- com.ibm.wsspi.jsp.evalquotedandescapedexpression
- Value
- Booléen
Pour activer ce nouveau comportement à destination d'une application unique, vous devez également ajouter l'attribut JSP evalquotedandescapedexpression au fichier ibm-web-ext.xmi ou ibm-web-ext.xml de l'application défaillante et paramétrer sa valeur sur 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>


Toutefois, un module Java EE 5 ou version ultérieure peut exister dans une application qui inclut des fichiers antérieurs à Java EE 5 et utilise l'extension de nom de fichier .xmi.
Les fichiers ibm-webservices-ext.xmi, ibm-webservices-bnd.xmi, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi et ibm-portlet-ext.xmi continuent d'utiliser les extensions de fichier .xmi.
sptcfgcom.ibm.wsspi.jsp.modifyPageContextVariable
Pendant la phase de conversion d'un fichier de balises compilé, le conteneur JSP utilise implicitement la variable pageContext de l'objet PageContext. Or, l'utilisation de la variable pageContext comme nom de variable implicite dans les fichiers de balises n'est pas conforme à la spécification JSP.
Si des erreurs de compilation se produisent pour des applications utilisant dans leur fichier de balises une variable pageContext locale, donnez la valeur true à la propriété personnalisée com.ibm.wsspi.jsp.modifyPageContextVariable pour supprimer l'utilisation du nom de la variable pageContext dans le code Java généré pour les fichiers de balises.
- Nom
- com.ibm.wsspi.jsp.modifyPageContextVariable
- Value
- Booléen
com.ibm.wsspi.jsp.recompilejsponrestart
Chaque fois que l'application est redémarrée, cette propriété force la recompilation des fichiers JSP qui avaient été compilés au moment de l'exécution. Cette propriété s'avère utile si vous passez à l'implémentation JSF sous-jacente. Cette propriété est particulièrement adaptée aux environnements de développement.
- Nom
- com.ibm.wsspi.jsp.recompilejsponrestart
- Value
- Booléen
com.ibm.wsspi.jsp.usecdatatrim
Cette propriété personnalisée facilite la migration des applications de la version 5.1.
Si vos fichiers JSP incluent des balises d'imbrication sur des lignes distinctes, des lignes supplémentaires apparaissent dans le code Java généré pour ces sections des fichiers JSP. Ces lignes supplémentaires sont ajoutées dans le code Java généré car le texte n'est pas fractionné avant la création de la section CDATA.
Vous pouvez supprimer ces lignes si vous utilisez le caractère guillemet (") pour ajouter toutes les lignes dans une seule ligne ou si vous utilisez cette propriété pour activer le fractionnement du texte avant la création de la section CDATA. Cette dernière action supprime les espaces supplémentaires dans le code Java généré.
Lorsque cette propriété est ajoutée à vos paramètres de conteneur Web et qu'elle a la valeur true, cette fonctionnalité est activée pour toutes les applications du serveur. Si vous souhaitez activer cette fonctionnalité pour une application spécifique, indiquez les éléments JSPAttribute, useCDataTrim dans le fichier d'extensions pour cette application spécifique.
- Nom
- com.ibm.wsspi.jsp.usecdatatrim
- Value
- Booléen
com.ibm.wsspi.jsp.usescriptvardupinit
Le code généré pour un fichier JSP supposait de déclarer deux fois au minimum les mêmes variables de balise dans une condition If-Else, même si la variable comportait une portée de type page. La propriété personnalisée com.ibm.wsspi.jsp.usescriptvardupinit active cette fonction pour toutes les applications déployées sur un serveur particulier. Si la fonction de compatibilité est requise uniquement pour une application spécifique, activez l'attribut JSP useScriptVarDupInit. Si les deux options sont définies, l'attribut JSP prend le pas sur la propriété personnalisée du conteneur Web.
- Nom
- com.ibm.wsspi.jsp.usescriptvardupinit
- Value
- Booléen
com.ibm.wsspi.jsp.reusepropertygroupconfigoninclude

- Nom
- com.ibm.wsspi.jsp.reusepropertygroupconfigoninclude
- Value
- false
com.ibm.wsspi.jsp.usestringcast
Cette propriété personnalisée facilite la migration des applications de la version 5.1.
La source Java générée pour un fichier JSP n'ajoute pas de diffusion "implicite" pour les types de retour Chaîne lors de l'appel de la méthode request.getAttribute. Lorsqu'un fichier JSP inclut une ressource dont le chemin relatif n'est pas évalué comme chaîne, l'inclusion échoue car elle accepte uniquement une Chaîne comme chemin relatif de la ressource. Ce comportement est différent de celui de la version 5.1.
Si vous migrez des applications de la version 5.1 qui incluent la méthode request.getAttribute, vous pouvez ajouter cette propriété à vos paramètres de conteneur Web et lui attribuer la valeur true. Lorsque cette propriété a la valeur true, le compilateur JSP ajoute explicitement un élément 'String cast' au chemin relatif d'une ressource avant l'inclusion.
Lorsque cette propriété est ajoutée à vos paramètres de conteneur Web et qu'elle a la valeur true, cette fonctionnalité est activée pour toutes les applications du serveur. Si vous souhaitez activer cette fonctionnalité, indiquez l'attribut JSP useStringCast dans le fichier d'extensions de cette application spécifique.
- Nom
- com.ibm.wsspi.jsp.usestringcast
- Value
- Booléen