如何在JSTL 1.0中比较bean属性的子字符串?

时间:2009-07-07 09:21:44

标签: java jsp jstl

我在jsp页面中有以下代码(支持Struts):

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

但我想做的是只比较一些属性的子串,例如如果后缀以“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>

但当然,像这样的Java无法访问USERINFO。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果要避免使用scriptlet,只需使用String Taglib: 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>

答案 1 :(得分: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>