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(a)j4fry.org <mailto:ganesh@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