2009-07-07 61 views
0

我在JSP頁面下面的代碼(Struts的支持):如何比較JSTL 1.0中的bean屬性的子字符串?

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

但是我希望做的是隻比較someproperty的字符串,例如像如果後綴以「st」結尾。 我正在使用JSTL 1.0,所以從JSTL 1.1的endsWith()函數不可用(據我所知),此外,我更喜歡一個解決方案,不涉及我爲此編寫定製Java類。

我正沿着這些路線思考的東西:

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

但當然USERINFO就是這樣無法訪問到Java。

任何想法?

回答

2

或者只是使用字符串標籤庫,如果你想避免小腳本: 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

你必須避免小腳本。字符串Taglib是要走的路。 +1 – 2009-07-07 10:14:00

0

嘗試以下操作:

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