簡體   English   中英

Tapestry-將方法應用於tml循環中的值

[英]Tapestry - apply method to a value from a tml loop

我找到了類似的帖子,但我要問的內容有所不同。

我的數據庫中有一個“房間”表,用於存儲有關房間的信息。 該表中的元素之一是價格(MySQL中為float)。

我想在tml中將所有房間及其信息打印出來,所以首先,我列出了“房間對象”列表。 (使用createQuery)

現在,在tml中

<t:loop source="rooms" value="room">
   ${room.price}

$ {room.price}打印一個小數,例如120.0。

是否可以將room.price傳遞給Java頁面以刪除小數並正確打印?

解決了。 我不知道這是不是正確的方法,但我做了:

tml

${getInt(room.precio)}

爪哇

public int getDynamicFieldValue(double arg1) {
    return (int) arg1;
}

另一個更好的選擇或更好的代碼?

在tml中使用$ {roomPrice}

然后在Java中執行以下操作:

public String getRoomPrice() {
    return String.format("%.0f", room.getPrecio());
}

變化是無限的,包括用整數截斷,但是我認為這給出了基本思想:在Java類而不是tml文件中進行轉換。

另一種方法是創建一個新的Binding前綴,您可以在模板文件中使用它,而不必在要設置格式的每個頁面類中添加一個方法。

您可以定義任意數量的格式化程序,然后可以在項目中的任何位置使用它們,如下所示:

${format:price=room.price}

示例代碼:

https://wiki.apache.org/tapestry/Tapestry5HowToAddMessageFormatBindingPrefix

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM