Java 如何创建进度条?
我试图在Thymeleaf模板引擎内部创建一个引导进度条 这就是我所尝试的:Java 如何创建进度条?,java,thymeleaf,Java,Thymeleaf,我试图在Thymeleaf模板引擎内部创建一个引导进度条 这就是我所尝试的: <div class="progress-bar bg-blue" role="progressbar" th:style="'width:' +${order.total == 0 ? '0' : (order.completed / order.total) * 100 } +'%';" aria-valuemin="0" a
<div class="progress-bar bg-blue" role="progressbar" th:style="'width:' +${order.total == 0 ? '0' : (order.completed / order.total) * 100 } +'%';" aria-valuemin="0" aria-valuemax="100" th:text="${order.total == 0 ? '0' : (order.completed / order.total) * 100 }"></div>
我发现,在这个特定的例子中,如果将每个变量都放在它们自己的
${…}
中,阅读逻辑会稍微容易一些,但不必这样做*
您有语法错误,因为您有+'%'代码>,其中最后的代码>位于引用文本之后。它应该是引用文本的一部分:+'%;'代码>
要从计算中获得有意义的值,请确保使用的是浮点数,而不是整数。对于整数,您的值将计算为0或1
我添加了额外的括号,使条件求值表达式与字符串连接分离
以下是我的版本:
<div
role="progressbar"
th:style="'width:' + ( ${order.total} == 0 ? '0' : (${order.completed * 1.0} / ${order.total}) * 100.0 ) + '%;'"
aria-valuemin="0"
aria-valuemax="100"
th:text="${order.total == 0 ? '0' : (order.completed * 1.0 / order.total) * 100.0 }">
</div>
最后注意:这显然是一个完全静态的进度条。如果没有返回服务器的往返,它将不会更新
*除非您特别希望控制表达式如何使用OGNL和Thymeleaf求值
<div
role="progressbar"
th:style="'width:' + ( ${order.total} == 0 ? '0' : (${order.completed * 1.0} / ${order.total}) * 100.0 ) + '%;'"
aria-valuemin="0"
aria-valuemax="100"
th:text="${order.total == 0 ? '0' : (order.completed * 1.0 / order.total) * 100.0 }">
</div>