Bien que ce cas particulier peut être manipulé avec la fonction JSTL fn:startsWith
, les expressions régulières en général semblent comme des tests très probables . Il est regrettable que JSTL n'inclue pas de fonction pour ceux-ci. Par contre, il est assez facile d'écrire une fonction EL qui fait ce que vous voulez. Vous avez besoin de l'implémentation de la fonction et d'un TLD pour indiquer à votre application Web où la trouver. Mettez-les ensemble dans un fichier JAR et déposez-le dans votre répertoire WEB-INF/lib.
Voici un aperçu:
com/x/taglib/core/Regexp.java:
import java.util.regex.Pattern;
public class Regexp {
public static boolean matches(String pattern, CharSequence str) {
return Pattern.compile(pattern).matcher(str).matches();
}
}
META-INF/xc.tld:
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>x-c</short-name>
<uri>http://dev.x.com/taglib/core/1.0</uri>
<function>
<description>Test whether a string matches a regular expression.</description>
<display-name>Matches</display-name>
<name>matches</name>
<function-class>com.x.taglib.core.Regexp</function-class>
<function-signature>boolean matches(java.lang.String, java.lang.CharSequence)</function-signature>
</function>
</taglib>
Désolé, je n Ne teste pas cette fonction particulière, mais j'espère que c'est suffisant pour vous orienter dans la bonne direction.
Cela ne répond pas à la question d'op (et my): _ "Est-ce que quelqu'un sait s'il existe un moyen d'avoir la chaîne interprétée comme une regex à la place?" _ – Madbreaks