2016-07-08 7 views
0

私は同様のポストを見つけましたが、私は少し質問しています。Tapestry - tmlループの値にメソッドを適用します

私は部屋の情報を格納するために私のデータベースにテーブルを持っています。テーブルの要素の1つはprice(MySQLではfloat)です。

私はすべての部屋を情報とともに印刷したいので、まず部屋オブジェクトのリストを作成します。 TML で今

、(からCreateQueryで):

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

$ {room.price}例えば小数点、120.0を印刷します。

room.priceをJavaページに渡して10進数を削除することはできますか?正しく印刷しますか?

+0

- 私タペストリーで新しいので、ここで見た例を試しましたが、正しくはないと思います。 $ {getNewValue($ {room.precio})} javaページでpublic getNewValueを実行します。 – eloygperez

+0

あなたはそれを組み込み、それを試してみると何が起こるのかを含めるべきです。 – Taegost

+0

それはうまくいかず、誰かが助けてくれるかもしれません。 – eloygperez

答えて

0

解決済み。正しい方法をit's場合、私は知らないが、私は作っ:

${getInt(room.precio)} 

javaの

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

もう一つの良いオプションまたはより良いコードTML? TML使用$ {roomPrice}

0

は、次にJavaでこのような何か:

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

をバリエーションは、整数と切り捨てを含め、無限ですが、私は、これは基本的なを与えると思いますidea:tmlファイルではなくJavaクラスで変換を行います。

+0

ありがとう! Bob Harner、私もあなたのコードを試してみます。私はtmlで新しいので、私は、Javaとtmlの間でパラメータを渡すことが少し失われています... – eloygperez

0

もう1つの方法は、書式設定する各ページクラスにメソッドを追加することなく、テンプレートファイルで使用できる新しいBinding接頭辞を作成することです。

プロジェクトで使用すると、以下のように好きな場所あなたが使用できる、必要な数のフォーマッタを定義することができます。

${format:price=room.price} 

例コード:

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

関連する問題