2016-07-08 3 views
0

Я нашел подобный пост, но то, что я прошу, немного отличается.Tapestry - применить метод к значению из цикла tml

У меня есть таблица «Комната» в моей базе данных, чтобы хранить информацию о номерах. Одним из элементов таблицы является цена (float в MySQL).

Я хочу напечатать все свои комнаты в tml с их информацией, поэтому сначала создайте список объектов комнаты. (С CreateQuery)

Теперь, в TML:

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

$ {room.price} печатает один десятичный, например, 120,0.

Возможно ли передать эту комнату.цену на страницу Java, чтобы удалить десятичную строку, напечатать ее правильно?

+0

I'm новый с Гобеленом, поэтому я попробовал пример, который я видел здесь, но я думаю, что это неправильно. $ {getNewValue ($ {room.precio})} И сделать публичный getNewValue на странице java. – eloygperez

+0

Затем вы должны включить его и включить то, что произойдет, когда вы попробуете его – Taegost

+0

Это не работает, может быть, кто-то может помочь. – eloygperez

ответ

0

Решено. Я не знаю, если подмигнули правильный путь, но я сделал:

TML

${getInt(room.precio)} 

ява

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

Еще лучший вариант или лучше код?

0

В использовании ТМС $ ​​{roomPrice}

Тогда в Java сделать что-то вроде этого:

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

Вариации бесконечны, в том числе усечения с целым числом, но я думаю, что это дает основной Идея: выполнить преобразование в классе Java, а не в файле tml.

+0

Спасибо! Боб Харнер, я тоже попробую код. Я новичок в tml, поэтому я немного потерял параметры прохождения между java и tml ... – eloygperez

0

Другой способ - создать новый префикс Binding, который вы можете использовать в своем файле шаблона, не добавляя метод в каждый класс страницы, где вы хотите форматировать.

Вы можете определить столько форматтеры, как вы хотите, которые вы затем можете использовать везде, где в вашем проекте вы хотите, как в следующем:

${format:price=room.price} 

Пример кода:

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

 Смежные вопросы

  • Нет связанных вопросов^_^