myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jakob Korherr (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-2552) TagValueExpression.getType() returns null if the property in the managed bean is null and the expression points to a facelets composite component attribute
Date Fri, 12 Feb 2010 16:00:27 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-2552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12833040#action_12833040
] 

Jakob Korherr commented on MYFACES-2552:
----------------------------------------

One solution for this would be to return a special type != Map when resolving #{cc.attrs}
and providing a special ELResolver for this type. Then we could use the original ValueExpressions
of the attributes from the composite component to determine the type. Of course this would
totally break the spec!!!

What are your opinions about that? Is this too unimportant to make such great changes or should
we consult the EG and maybe change this behavior? Maybe in the next major release (2.1)?

> TagValueExpression.getType() returns null if the property in the managed bean is null
and the expression points to a facelets composite component attribute
> -----------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-2552
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2552
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.0-beta-2
>            Reporter: Jakob Korherr
>            Assignee: Jakob Korherr
>
> if you have a facelets composite component with an attribute "test" that points to a
property in a managed bean (e.g. #{myBean.property}) which is currently null and you refer
to that attribute in the implementation via #{cc.attrs.test} you can get the current value
(null) or set a new value but you cannot get the type of the property (e.g. String[]). However
if the property in the managed bean is non-null you can get the type.
> For example:
> <cc:interface name="mycomponent">
>     <cc:attribute name="test" required="true"/>
> </cc:interface>
> <cc:implementation>
>     <h:selectManyListbox value="#{cc.attrs.test}">
>         <f:selectItems value="#{some select items}"/>
>     </h:selectManyListbox>
> </cc:implementation>
> --> calling #{cc.attrs.test}.getType() will fail if #{cc.attrs.test} resolves to null,
but will work if #{cc.attrs.test} resolves to some valid value.
> This currently results in a NullPointerException in _SharedRendererUtils.getConvertedUISelectManyValue().

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


Mime
View raw message