[ 
https://issues.jboss.org/browse/RF-12353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brian Leathem updated RF-12353:
-------------------------------

    Fix Version/s: 4.3.0.Milestone2
         Priority: Trivial  (was: Minor)


Fixing this should be as simple as adding the @Attribute annotation with 
generate=false to the getter of the AbstractParameter conveter getter:
https://github.com/richfaces/components/blob/develop/core/ui/src/main/java/org/richfaces/component/AbstractParameter.java#L85
                
> Incorrect documentation/taglib on <a4j:param>
> ---------------------------------------------
>
>                 Key: RF-12353
>                 URL: https://issues.jboss.org/browse/RF-12353
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-a4j-core, doc
>    Affects Versions: 4.2.0.Final, 4.2.2.Final
>         Environment: no matter
>            Reporter: Alexander Kiselyov
>            Priority: Trivial
>              Labels: String, a4j:param, assignTo, converter
>             Fix For: 4.3.0.Milestone2
>
>
> Technical background (RichFaces developers can easy skip it):
> ----
> <a4j:param> performs setting of its value into an expression specified in 
> "assignTo" attribute. As this component is set as Action listener for 
> ActionSource parent - 
> org.richfaces.component.AbstractParameter.processAction(ActionEvent) is 
> called. This method directly retrieves request parameter with this 
> parameter's name/clientId:
> String requestValue = 
> context.getExternalContext().getRequestParameterMap().get(getName());
> and then, if converter's not found, sets it as a value of an expression, 
> specified in "assignTo":
> {code}
> if (requestValue != null) {
>   Class<?> type = updateBinding.getType(elContext);
>   Converter converter = createConverter(context, type);
>   ...
> }
> if (null != convertedValue) {
>  updateBinding.setValue(elContext, convertedValue);
> }
> {code}
> When our expression value has reifiable type, for which JSF (or app 
> developer) has registered a converter (for instance - Boolean) - all's peachy 
> keen. But when developer uses, e.g., Map - expression's type (got in 
> updateBinding.getType(ELContext)) is Object, and we're starting to receive 
> strings in Map, which is probably parameterized with anything. Also this 
> situation applies to "non-standard" reference types (user-declared JavaBean, 
> for instance).
> {code}
> org.richfaces.view.facelets.html.ParameterHandler:
> org.richfaces.view.facelets.html.ParameterHandler.ActionParamMetaRule.applyRule(String,
>  TagAttribute, MetadataTarget):
> ...
> else if ("converter".equals(name)) {
>                     if (attribute.isLiteral()) {
>                         return new 
> LiteralConverterMetadata(attribute.getValue());
>                     } else {
>                         return new DynamicConverterMetadata(attribute);
>                     }
>                 }
> ...
> {code}
> I.e. <a4j:param> tag handler designed to accept "converter" attribute, which 
> can appropriately convert value, passed from client.
> ----
> [a4j:param VDL 
> Doc|http://docs.jboss.org/richfaces/4.2.X/4.2.2.Final/vdldoc/a4j/param.html] 
> has no mention of it, and value/assignTo attributes type specified as 
> "java.lang.Object". a4j.taglib.xml has no mention of it, so developers have 
> no chance to discover it, e.g., through the content assist, [Rich Component 
> Reference|http://docs.jboss.org/richfaces/4.2.X/4.2.2.Final/Component_Reference/en-US/html_single/#sect-Component_Reference-Actions-a4jparam]
>  has only two sentences about it, which are *very easy to miss*.
> Also, [RichFaces 
> Showcase|http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=param&sample=clientParam&skin=blueSky]
>  contains no example, which uses "converter" attribute.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to