Странное сообщение JSF от <h: message for = "someID"> - PullRequest
0 голосов
/ 28 августа 2011

Я использую inputText для получения ввода от пользователя

<h:inputText id="firstName" value="#{beanManager.currentUser.firstName }" required="true"        style="font-size: 15px"></h:inputText>

, а затем я добавил тег сообщения

<h:message for="firstName"></h:message>

, но когда inputtext пуст и я нажимаюотправить Я получаю это сообщение об ошибке:

> j_id_jsp_1382885624_1:ID: Validation Error: Value is required.

как я могу отобразить сообщение об ошибке только как это?

> Validation Error: Value is required.

вот код:

    <f:view>
    <h:form>
        <h:panelGrid border="1" columns="3" style="width: 643px; ">
            <h:outputText value="First Name" style="font-size: 25px; font-weight: bold"></h:outputText>
            <h:outputText value="Last Name" style="font-size: 25px; font-weight: bold"></h:outputText>
            <h:outputText value="ID" style="font-size: 25px; font-weight: bold"></h:outputText>
            <h:inputText id="firstName" value="#{beanManager.currentUser.firstName }" required="true" requiredMessage="Enter a Valid First Name" style="font-size: 15px"></h:inputText>
            <h:inputText id="LastName" value="#{beanManager.currentUser.lastName }" required="true" requiredMessage="Enter a Valid Last Name" style="font-size: 15px"></h:inputText>
            <h:inputText id="ID" value="#{beanManager.currentUser.ID}" required="true" requiredMessage="Enter a Valid ID"  style="font-size: 15px">
                </h:inputText>
            <h:form><h:commandButton action="#{beanManager.save }" value="Save Changes" style="height: 30px; width: 100px"></h:commandButton>       
            </h:form>
        </h:panelGrid>
        <h:commandLink action="backtopersonalview" value="Back To Users" style="height: 30px; width: 100px">
                </h:commandLink>
    </h:form>
</f:view>

1 Ответ

2 голосов
/ 28 августа 2011

Да, это возможно.

К текущему сообщению могу сказать, что оно состоит из form id, item id и default message.

<form_id>:<item_id>: <default_message:javax.faces.component.UIInput.REQUIRED>

Если вы хотите изменить сообщение по умолчанию, вы можете сделать это с помощью пакета сообщений, который вы должны определить в вашем faces-config.xml.

<application>
    <locale-config>
        <default-locale>en</default-locale>
        <supported-locale>en</supported-locale>
    </locale-config>
    <resource-bundle>
        <base-name>com.stackoverflow.messages.language</base-name>
    </resource-bundle>
</application>

И измените значение на javax.faces.component.UIInput.REQUIRED.

Например, ваш пакет сообщений language.properties может содержать:

javax.faces.component.UIInput.REQUIRED=Your new required message!

В основном все реализации JSF идут со следующим сообщением по умолчанию, которое я скопировал из Mojarra:

javax.faces.component.UIInput.REQUIRED={0}: Validation Error: Value is required.

Также возможно определить необходимое сообщение для одного элемента с атрибутом requiredMessage. Тогда ваш <h:inputText /> должен выглядеть так:

<h:inputText id="firstName" value="#{beanManager.currentUser.firstName }" required="true" requiredMessage="Your new required message!" style="font-size: 15px">
...