我想在我的 Struts2 应用程序的表格中显示文本的开头。它工作得很好,除非文本字段比我想要的长度短。
<td>
<s:property value="key.text.substring(0,40)" />...
</td>
如果key.text
太短,则不显示任何内容。如果我删除该功能,一切都会很好地显示substring()
(当然,它通常太长了)。
除了测试text
长度,我能做些什么吗?
传递到原力的光明面并仅为此使用 CSS...
HTML
<table>
<tr>
<td><s:property value="key.text"/></td>
</tr>
</table>
CSS
td {
overflow:hidden;
text-overflow:ellipsis;
white-space: nowrap;
display: inline-block;
width:200px;
}
这样,您将对整体宽度进行精确控制,因为您以像素表示它,同时限制了许多字符,但您的宽度无法预测:(40I
比 40 短Z
)。
好吧,您在这里遇到了异常:
子串
...
抛出: IndexOutOfBoundsException - 如果 beginIndex 为负数,或者 endIndex 大于此 String 对象的长度,或者 beginIndex 大于 endIndex。
这就是您看不到任何输出的原因。
因此,您需要先检查长度。
尝试这个:
<td>
<s:if test="key.text.length() > 40">
<s:property value="key.text.substring(0,40)" />
</s:if>
<s:else>
<s:property value="key.text" />
</s:else>
</td>