我有一个属性,它是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条件是错误的。如何解决?
答案 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}"/>