使用struts2标记测试字符串的长度

时间:2015-12-14 11:12:23

标签: java jsp struts2

我有一个属性,它是jsp文件中的String,我想显示它。如果物业的长度超过30个字符,我只想显示前30个字符。我使用了以下代码:

<s:if test="%{title.length > 25}">
<s:property value="title.substring(0,25)" />
</s:if>
<s:else>
<s:property value="title" />
</s:else>

但是,它始终以全长显示标题。我想if条件是错误的。如何解决?

2 个答案:

答案 0 :(得分:3)

你可以用几种方式做到这一点,但这里有两个

来自Java

您可以在动作类中创建一个名为getTrimmedTitle的函数,如下所示:

public String getTrimmedTitle(){
    if (testing.length()>25)
        return testing.substring(0,25);
    else return testing;
}

然后在你的jsp中只有这个:

<s:property value="trimmedTitle" />

来自JQuery

您可以添加ID,例如&#34; title&#34;到你想要编辑的字段并编写一个这样的简单函数:

<script type="text/javascript">
    $(document).ready(function(){
        $("#title").val($("#title").val().substr(1,25));
    });
</script>

每次加载页面时都会运行。

答案 1 :(得分:1)

要从Struts2标记执行此操作:

<s:if test="%{title.length() > 25}">
  <s:property value="title.substring(0, 25)"/>
</s:if>
<s:else>
  <s:property value="title"/>  
</s:else>

<s:property value="%{title.length() > 25 ? title.substring(0,25) + '...' : title}"/>