Java JSP substring()不';如果字符串较短,则不显示任何内容
我想在Struts2应用程序的表格中显示文本的开头。它工作得很好,除非文本字段比我想要的长度短Java JSP substring()不';如果字符串较短,则不显示任何内容,java,jsp,struts2,Java,Jsp,Struts2,我想在Struts2应用程序的表格中显示文本的开头。它工作得很好,除非文本字段比我想要的长度短 <td> <s:property value="key.text.substring(0,40)" />... </td> ... 如果key.text太短,则不显示任何内容。如果我删除substring()函数,一切都会显示得很好(当然,它通常太长) 除了测试文本长度之外,我还能做些什么吗?嗯,您在这里遇到了一个异常: 子串 抛出:IndexOut
<td>
<s:property value="key.text.substring(0,40)" />...
</td>
...
如果key.text
太短,则不显示任何内容。如果我删除substring()
函数,一切都会显示得很好(当然,它通常太长)
除了测试
文本
长度之外,我还能做些什么吗?嗯,您在这里遇到了一个异常:
子串
抛出:IndexOutOfBoundsException-如果beginIndex为负数,或者endIndex大于此字符串对象的长度,或者beginIndex大于endIndex
这就是您没有看到任何输出的原因
因此,您需要首先检查长度。嗯,您在这里遇到了一个异常: 子串 抛出:IndexOutOfBoundsException-如果beginIndex为负数,或者endIndex大于此字符串对象的长度,或者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>
试试这个:
<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>
传递到原力的光明面,并仅在这方面使用CSS HTML
这样你就可以精确地控制总宽度,因为你用像素来表达它,同时限制了字符数,你的宽度是无法预测的:(40
I
比40Z
短)。转到原力的光明面,只为这一点使用CSS
HTML
通过这种方式,您可以精确控制总宽度,因为您以像素表示,同时限制字符数,因此无法预测宽度:(40
I
比40Z
短).仅在使用键.text.length>40时才有可能。例如您想知道我现在几岁吗?
显示,我多大了?
没有。我的意思是您希望得到什么样的解决方案?除了检查长度。仅可使用键.text.length>40
例如您想知道我现在几岁吗?
显示,我多大了?
不是。我的意思是您希望什么样的解决方案?除了检查length.short if条件外,你不知道struts2的语法是这样的吗
short if condition,不知道struts2类似的语法吗
好吧,我没有看到任何异常,我觉得这个测试有点没用,但是让我们接着做。将struts.devMode
设置为true,您就会看到异常好吧,我没有看到任何异常,我觉得这个测试有点没用,但是让我们接着做。将struts.devMode
设置为true,你会看到一个例外,从来没有听说过。看起来不错!从没听说过这个。看起来不错!
td {
overflow:hidden;
text-overflow:ellipsis;
white-space: nowrap;
display: inline-block;
width:200px;
}