jsf - Retrieve converter attribute expression from UIViewParameter -
i need create dependent converter view-param jsf has no built in solution for.
in example bar dependent on foo.
<f:viewparam name="foo" value="#{bean.foo}" converter="#{appscopebean.fooconverter}"/> <f:viewparam name="bar" value="#{bean.bar}" converter="#{bean.barconverter}"/> in @postconstruct converted value bean.foo not yet available, manually retrieve request parameter bar , converter performing el lookup.
@postconstruct public void init() { // mimic uiviewparameter behavior // grab request parameter manually final string fooid = context.getexternalcontext().getrequestparametermap().get("foo"); // grab converter manually final converter fooconverter = context.getapplication().evaluateexpressionget(context, "#{appscopebean.fooconverter}", converter.class); final foo foo = fooconverter.getasobject(context, null, fooid); // create bar converter dependent on foo } now tried obtain converter resolving uiviewparameter, converter instance null since not yet set jsf lifecycle (why? if converter scope broader should safe). want obtain el-expression lookup converter (to reduce need hardcode above dry):
@postconstruct public void init() { // mimic uiviewparameter behavior final uiviewparameter fooviewparam = facescontextutils.getviewparam(context, "foo"); // final converter fooconverter = fooviewparam.getconverter(); null // pseudo code final converter fooconverter = context.getapplication().evaluateexpressionget(context, fooviewparam.getconverterexpression(), converter.class); final foo foo = fooconverter.getasobject(context, null, fooid); // create bar converter dependent on foo } jsf should handle support dependent converters iterative life-cycle bean event invoked after each uiviewparameter converter instantiation.
Comments
Post a Comment