You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2007/10/08 05:22:50 UTC

[jira] Commented: (MYFACES-1729) label attribute does not resolve EL expresion (JSR 252 Issue 6 related)

    [ https://issues.apache.org/jira/browse/MYFACES-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533027 ] 

Leonardo Uribe commented on MYFACES-1729:
-----------------------------------------


Again, thinking more carefully the previous solution let me a bitter flavor. I don't like change the detail and summary implementation
on HtmlMessage(s)Renderer, because it's a source of incompatibilities. It should be better to create a class that extends from FacesMessage called _LabeledFacesMessage, that evaluate the ELExpression of label only when the method getDetail and getSummary is called. 

Again, I provide this patch, and finally I feel that this is a correct solution for this issue.



> label attribute does not resolve EL expresion (JSR 252 Issue 6 related)
> -----------------------------------------------------------------------
>
>                 Key: MYFACES-1729
>                 URL: https://issues.apache.org/jira/browse/MYFACES-1729
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-252
>    Affects Versions: 1.2.1-SNAPSHOT
>         Environment: Tomcat 6, Windows XP
>            Reporter: Leonardo Uribe
>         Attachments: patchLoadBundleWithEL.patch, patchLoadBundleWithoutImplementState.patch
>
>
> When validation is applied to the following page:
> <%@ page session="false" contentType="text/html;charset=utf-8"%>
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> <html>
> <f:view>
> 	<%@include file="inc/head.inc"%>
> 	<body>
>     <f:loadBundle basename="org.apache.myfaces.examples.resource.example_messages" var="example_messages"/>
>     <h1>Myfaces Examples JSF 1.2 Additions</h1>	
>         <h:messages id="messageList" styleClass="error"/>
>         <h:form id="form1">
>             <h:panelGrid columns="4">
>                 <h:outputLabel for="form1:number1"
>                     value="#{example_messages['sample1_number']} 1 :" />
>                 <h:outputText value="#{validationController.number1ValidationLabel}" />
>                 <h:inputText label="#{example_messages['sample1_number']}" 
>                 id="number1" value="#{calcForm.number1}" maxlength="10"
>                     size="25" required="true">
>                     <f:validateLongRange minimum="1" maximum="10" />
>                 </h:inputText>
>                 <h:message id="number1Error" for="form1:number1" styleClass="error" />
>             </h:panelGrid>
>             <h:panelGrid columns="4">
>                 <h:outputLabel for="form1:number2"
>                     value="#{example_messages['sample1_form']} 2 :" />
>                 <h:outputText value="#{validationController.number2ValidationLabel}" />
>                 <h:inputText label="#{example_messages['sample1_form']}" 
>                     id="number2" value="#{calcForm.number2}" maxlength="10"
>                     size="25" required="true">
>                     <f:validateLongRange minimum="20" maximum="50" />
>                 </h:inputText>
>                 <h:message id="number2Error" for="form1:number2" styleClass="error" />
>             </h:panelGrid>
>             <h:panelGrid columns="2">
>                 <h:outputLabel for="form1:result"
>                     value="#{example_messages['sample1_result']} :" />
>                 <h:outputText id="result" value="#{calcForm.result}" />
>             </h:panelGrid>
>             <h:panelGrid columns="4">
>                 <h:commandButton id="addButton"
>                     value="#{example_messages['sample1_add']}" action="none">
>                     <f:actionListener
>                         type="org.apache.myfaces.examples.example1.CalcActionListener"></f:actionListener>
>                 </h:commandButton>
>                 <h:commandButton id="subtractButton"
>                     value="#{example_messages['sample1_sub']}" action="none">
>                     <f:actionListener
>                         type="org.apache.myfaces.examples.example1.CalcActionListener"></f:actionListener>
>                 </h:commandButton>
>                 <h:commandLink id="href1" action="none">
>                     <h:outputText value="#{example_messages['sample1_add_link']}" />
>                     <f:actionListener
>                         type="org.apache.myfaces.examples.example1.CalcActionListener"></f:actionListener>
>                 </h:commandLink>
>                 <h:commandLink id="href2" action="none">
>                     <h:outputText value="#{example_messages['sample1_sub_link']}" />
>                     <f:actionListener
>                         type="org.apache.myfaces.examples.example1.CalcActionListener"></f:actionListener>
>                 </h:commandLink>
>             </h:panelGrid>
>         </h:form>
> 	</body>
> </f:view>
> </html>
> If you use the attribute label on inputText like this:
>                 <h:inputText label="#{example_messages['sample1_number']}" 
>                 id="number1" value="#{calcForm.number1}" maxlength="10"
>                     size="25" required="true">
>                     <f:validateLongRange minimum="1" maximum="10" />
>                 </h:inputText>
> and a validation error happens, the EL expression inside label attribute returns null. On a message box this looks like:
> null: Validation Error: Specified attribute is not between the expected values of 20 and 50.
>  On JSF RI 1.2 this works correctly. null is replaced by the expression inside the bundle.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.