2009-07-07 3 views
0

Ich habe den folgenden Code in einer jsp Seite (Struts gesichert):Wie Teilstring einer Bean-Eigenschaft in JSTL 1.0 zu vergleichen?

<c:if test="${USERINFO.someproperty == 'test'}"> 
... 
</c:if> 

Aber was würde Ich mag nur eine Teil someproperty tun vergleichen, wie z.B. wenn das Suffix mit "st" endet. Ich benutze JSTL 1.0, so dass die endsWith() - Funktion von JSTL 1.1 nicht verfügbar ist (soweit ich weiß) und außerdem würde ich eine Lösung bevorzugen, die mich nicht mit dem Schreiben einer benutzerdefinierten Java-Klasse beschäftigt.

Ich dachte, etwas in dieser Richtung:

<c:set var="someproperty"><%= USERINFO.someproperty.substring(USERINFO.someproperty.length()-2, 2) %></c:set> 
<c:if test="${someproperty == 'st'}"> 
... 
</c:if> 

Aber natürlich ist nicht USERINFO zugänglich Java ähnlich.

Irgendwelche Ideen?

Antwort

2

Oder nur die String Taglib verwenden, wenn Sie wollen Scriptlets vermeiden: http://jakarta.apache.org/taglibs/doc/string-doc/intro.html

<c:set var="someproperty"> 
    <str:substring start="${USERINFO.someproperty.length-2}" end="2">The tree is green.</str:substring> 
</c:set> 

<c:if test="${someproperty == 'st'}"> 
    ... 
</c:if> 
+0

Sie Scriptlets vermeiden müssen. String Taglib ist der Weg zu gehen. +1 –

+0

Die String-Taglib funktionierte, aber ich habe das Str: Right-Tag anstelle von Substring verwendet, da ich nur das Suffix wollte. Danke! :) – AsGoodAsItGets

0

Versuchen Sie Folgendes:

<c:set var="someproperty"><%= ((UserInfo)pageContext.getAttribute("USERINFO")).someproperty.substring(USERINFO.someproperty.length()-2, 2) %></c:set> 
<c:if test="${someproperty == 'st'}"> 
... 
</c:if>