Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MyFaces и custom message для required поля 
V
    Опции темы
Fedrus
Дата 25.9.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Создал новую тему так как вопрос от предыдущей отдален(.
Проблема с выводом своего текста ошибки required поля. Возможно из-за использования MyFaces? (используем связку MyFaces 1.1.5 + JBoss 4.0 + Tomahawk 1.1.6).
я описал ее значение в messages.properties :
Код

javax.faces.component.UIInput.REQUIRED=Please enter the required value.
javax.faces.component.UIInput.REQUIRED_detail=Please enter the required value.
javax.faces.validator.LengthValidator.MINIMUM=ADSFSFAF
javax.faces.validator.LengthValidator.MINIMUM_detail=ASDASDETAIL
fed=fed

на странице сначала пробовал:
Код

<f:loadBundle  basename="messages" var="msgs"/>
<h:messages style = "color:darkred" showDetail="true"></h:messages>
<h:outputText value="#{msgs.fed}"/>

Потом искал в гугле и попробовал так:
Код

<f:loadBundle  basename="org.apache.myfaces.examples.resource.example_messages" var="msgs"/>
<h:messages style = "color:darkred" showDetail="true"></h:messages>
<h:outputText value="#{msgs.fed}"/>


Не помогло. Почему-то не берется текст ошибок из messages.properties пробовал и javax.faces.validator.LengthValidator.MINIMUM тоже не берется (
а #{msgs.fed} нормально работает.
Может кто сталкивался с этой проблемой и знает решение?(или где можно почитать по этому вопросу).


Это сообщение отредактировал(а) Fedrus - 25.9.2007, 15:39
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
Fedrus
Дата 25.9.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Еще может кто использует связку JBoss 4.2.1 - internal JSF 1.2 RI + Tomahawk 1.6 работает она??
просто в jsf 1.2 появились атрибуты типа requiredMesage и тд.
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
anonymouse
Дата 26.9.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



Нужно описать ResourceBungle в faces-config.xml, а не в f:loadBundle
тогда будет работать
Код

    <application>
        <message-bundle>...</message-bundle>
        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
    </application>

--------------------
Много чего интересного...
PM MAIL   Вверх
Fedrus
Дата 27.9.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Спасибо anonymouse за ответ у меня уже получилось.
В эклипсе надо кинуть файл проперти в src
и в faces-config.xml:
Код

<application>
<message-bundle>"просто имя файла"</message-bundle>
</application>


Кому надо хорошый туториал  http://www.coreservlets.com/JSF-Tutorial/

Тут возник следующий вопрос :
в properties использую параметр
javax.faces.component.UIInput.REQUIRED=FED Please enter a value.
javax.faces.component.UIInput.REQUIRED_detail=FEDdetail 0{0} 1{1} A value is required. Please enter a value. 

на странице 
Код

<h:inputText id="lastname" value="#{user.user.sLastname}" size="50"
                    maxlength="50"  required="true" >
<f:param value="Lastname" />
<f:converter converterId="NameConverter"/>
<t:validateRegExpr pattern='[a-zA-Z]+' message="Lastname is not valid: only chars"/>
</h:inputText>


Он берет как {0} параметр  id =lastname(а хотел Lastname) возможно так и должно быть( я не знаю)(конечно я могу писать нужные мне ID но думаю это не хорошо)
Я попробовал второй параметр {1} но туда ничего не передается
Может знаете способ передавать параметр в custom required mesage?

--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
Fedrus
Дата 27.9.2007, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Если и нет конкретного решения то и мнения мысли предложения по поводу кастомизации required messages тоже очень интересны
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
Zamuta
Дата 28.9.2007, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Мне всегда удобней в бэк бинсах всё делать, а то все эти тэги....

Код

public static String getDisplayString(String bundleName, String id, Object[] params, Locale locale) {
        String text = null;
        ResourceBundle bundle = ResourceBundle.getBundle(bundleName, locale, getCurrentClassLoader(params));
        try {
            text = bundle.getString(id);
        } catch (MissingResourceException e) {
            text = "!! key " + id + " not found !!";
        }
        if (params != null) {
            MessageFormat mf = new MessageFormat(text, locale);
            text = mf.format(params, new StringBuffer(), null).toString();
        }
        return text;
    }

protected static ClassLoader getCurrentClassLoader(Object defaultObject) {
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        if (loader == null) {
            loader = defaultObject.getClass().getClassLoader();
        }
        return loader;
    }


Вызывешь getDisplayString(String, String, Object[], Locale)  и в качестве Object[] даёшь свой getLastName(). 

1. Именно твоя проблема уже обсуждалась на форуме. 
2. Читайте книжки, господа.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
Fedrus
Дата 28.9.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Спасибо это еще один хороший варинт но у тебя всеравно используется id поля ввода((
Это хорошо когода id инпут поля = name а если id надо написать n123
то сообщение будет "!! key n123 not found !!"
Неужели все пишут id из соображений: так какое сообщение
 мне нужно...
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
ivg
Дата 28.9.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Код

<h:inputText id="lastname" value="#{user.user.sLastname}"
  size="50" maxlength="50"  required="true" label="Lastname">
  <f:converter converterId="NameConverter"/>
  <t:validateRegExpr pattern='[a-zA-Z]+' message="Lastname is not valid: only chars"/>
</h:inputText>

PM MAIL   Вверх
Fedrus
Дата 2.10.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Перешли (не без проблем) на JBOSS 4.2.0 GA  JSF 1.2 там проблема кастомизации сообщений отпала, а так как томагавк прикрутить не получилось(ругается что myfaces нуно и тод и тп), сейчас пишу свой тег типа RegExValidator(он то нам и был нужен от томагавка) с атрибутом messages обязательно))
--------------------
Если вы идете через ад, идите не останавливаясь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.