Translate

середа, 12 січня 2011 р.

JSF, замітки, враження, приклади


Використовуємо на поточному проекті JSF 1.2 Буду викладати помаленьку якісь типові солюшини
Сьогодні зіткнувся з наступною проблемою
Маємо у формі обов'язкове поле - Name
<h:inputtext value="#{action.dto.name}" requiredmessage="Name can't be empty" id="name" required="true"></h:inputtext>
Стандартний спосіб вказати що це обов'язкове поле вказати required="true"
Для того щоб виводилась не стандартна помилка, а ваша потрібно вказати requiredMessage="Name can't be empty"
Досі все працює гаразд
Але якщо вам потрібно щоб requiredMessage  підтягувався з ресурсів тут виникають проблеми
стандартний підхід - не працює
<h:inputtext value="#{action.dto.name}" requiredmessage="#{msg.name_warning}" id="name" required="true">
</h:inputtext>
не покаже вам жодного повідомлення. Як виявилось проблема в тому що ми підключили ресурси ось так
<f:loadbundle basename="messages" var="msg"></f:loadbundle>
І всюди цей підхід працює окрім власне повідомлень про помилку.

Щоб вирішити проблему довелось поправити faces-config.xml:
<application>
...
<message-bundle>messages</message-bundle>
<resource-bundle>
<base-name>messages</base-name>
<var>msg</var>
</resource-bundle>
</application>
Тепер все працює гаразд