[jsr-314-open-mirror] [jsr-314-open] [755-cc:attributesSpecialKeys]
Ganesh
ganesh at j4fry.org
Wed Oct 27 12:48:28 EDT 2010
Can you please give a use case for multiple method signatures? The use cases that come to my mind would work fine with:
<cc:attribute name="testAction" method-signature="String method()" />
Concerning targetName: I must admit I don't fully understand what this is meant to do. Do you have a list of possible f:attribute types in mind (like "value", "action", "valueChangelistener", "validator" and "actionListener")? If this is the concept of targetName I'd prefer naming it "type", so we could have:
<cc:attribute name="testAction" type="action" />
<cc:attribute name="testValidator" type="validator" />
Best regards,
Ganesh
Am 27.10.2010 18:20, schrieb Leonardo Uribe:
> Hi
>
> 2010/10/27 Ganesh <ganesh at j4fry.org <mailto:ganesh at j4fry.org>>
>
> LU> I agree with you, just note as it was mentioned before we still need to do something
> LU> to allow multiple action attributes for a single composite component, as reported here:
> LU>
> LU> https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=859
> LU>
> LU> The idea of introduce cc:attribute "targetName" sounds good. In theory with this attribute
> LU> we don't need add method-signature, because it can be inferred from the value of targetName.
> LU> In the example posted by me, since the attribute name is "action", the method-signature
> LU> is not required.
> LU>
> LU> regards,
> LU>
> LU> Leonardo Uribe
>
> Wouldn't your patch for https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=755 include working with other action attribute names? E.g.
>
> <cc:interface>
> <cc:attribute name="testAction"/>
>
> <cc:attribute name="label"/>
> </cc:interface>
> <cc:implementation>
> <h:commandButton value="#{cc.attrs.label}" action="#{cc.attrs.testAction}"/>
> </cc:implementation>
>
> or even
>
> <cc:interface>
> <cc:attribute name="testAction1"/>
> <cc:attribute name="testAction2"/>
>
> <cc:attribute name="label"/>
> </cc:interface>
> <cc:implementation>
> <ez:button value="#{cc.attrs.label}" action="#{cc.attrs.testAction1}"/>
> <h:commandButton value="#{cc.attrs.label}" action="#{cc.attrs.testAction2}"/>
> </cc:implementation>
>
> is what developers expect to work. If it's necessary for the implementation they will accept a method-signature. I don't like te idea of introducing one more obscure target family attribute like targetName. Instead I'd prefer to try and make targets obsolete.
>
>
> I don't think it is posible to use the previous syntax, because it is necessary to declare in some
> way that the attribute will receive a MethodExpression, otherwise a ValueExpression will be used
> and an error will be thrown. To do that we have two options:
>
> 1. use method-signature param, but extend this param to allow multiple signature definitions.
> 2. use "targetName" attribute to indicate implicitly the method-signature.
>
> I think use "targetName" attribute is better.
>
> Suggestions are welcome.
>
> best regards,
>
> Leonardo Uribe
>
> Best regards,
> Ganesh
>
>
More information about the jsr-314-open-mirror
mailing list