String 为什么我的百里香弦不起作用?

String 为什么我的百里香弦不起作用?,string,substring,thymeleaf,String,Substring,Thymeleaf,我正在处理的html上有一个表,对于一列,我希望最多显示30个字符(因为它可能很长)。下面是我的代码,但它不工作,我不知道为什么。如有任何建议,将不胜感激。提前感谢:) 要使类似的内容起作用,您需要考虑那些可能小于30个字符限制的字符串。在这种情况下,上述方法将失败(使用Java) 围绕这一点有不同的方法。一种方法是使用Thymeleaf“if/else”语法((if);(then):(else))来处理此问题,例如: <block th:with="kwd=${history.

我正在处理的html上有一个表,对于一列,我希望最多显示30个字符(因为它可能很长)。下面是我的代码,但它不工作,我不知道为什么。如有任何建议,将不胜感激。提前感谢:)


要使类似的内容起作用,您需要考虑那些可能小于30个字符限制的字符串。在这种情况下,上述方法将失败(使用Java)

围绕这一点有不同的方法。一种方法是使用Thymeleaf“if/else”语法(
(if);(then):(else)
)来处理此问题,例如:

<block th:with="kwd=${history.keyword}, len=${#strings.length(history.keyword)}">
    <span th:text=" ( ${len > 30} ) 
          ? ${#strings.substring(kwd,0,30)} + '…'
          : ${kwd}"></span>
</block>


我在上述方法中使用的另一件事是
th:with
创建两个变量:
kwd
len
,以使if/else语句更具可读性。

您是否面临任何错误?另外,在将其发送到Thymeleaf页面之前,您也可以这样做。尽管这不是问题的答案,但您不应该使用Thymeleaf进行带省略号的字符串截断,因为不同的字母在px中的宽度不同,除非您使用单字体。相反,您应该考虑一个简单的CSS方法来截断字符串以适合列。非常感谢您的评论。我发现我的代码不起作用的原因是因为我没有调整字母的长度。非常感谢你的评论!正如你所写的,不工作的原因是我没有考虑信的长度。现在我让代码工作了。再次感谢!
<block th:with="kwd=${history.keyword}, len=${#strings.length(history.keyword)}">
    <span th:text=" ( ${len > 30} ) 
          ? ${#strings.substring(kwd,0,30)} + '…'
          : ${kwd}"></span>
</block>