我发现了一个类似的帖子,但我的要求有点不同。
我的数据库中有一个表'Room'来存储有关房间的信息。表中的一个元素是price(在MySQL中浮动)。
我想用他们的信息打印我的所有房间,所以首先,我制作一个房间对象列表。 (使用createQuery)
现在,在 tml :
<t:loop source="rooms" value="room">
${room.price}
$ {room.price}打印一个小数,例如120.0。
是否可以将该room.price传递给Java页面以删除小数点并正确打印?
答案 0 :(得分:0)
解决。我不知道这是不是正确的方式,但我做了:
TML
e.stopPropagation();
的java
${getInt(room.precio)}
另一个更好的选择还是更好的代码?
答案 1 :(得分:0)
在tml中使用$ {roomPrice}
然后在Java中做这样的事情:
public String getRoomPrice() {
return String.format("%.0f", room.getPrecio());
}
变化是无穷无尽的,包括用整数截断,但我认为这给出了基本的想法:在Java类而不是在tml文件中进行转换。
答案 2 :(得分:0)
另一种方法是创建一个新的Binding
前缀,您可以在模板文件中使用该前缀,而无需在每个要进行格式化的页面类中添加方法。
您可以根据需要定义任意数量的格式化程序,然后您可以在项目中的任何位置使用,如下所示:
${format:price=room.price}
示例代码:
https://wiki.apache.org/tapestry/Tapestry5HowToAddMessageFormatBindingPrefix