替换com.sun.faces.util.Util.createConstantMethodBinding(String action);

时间:2013-12-13 10:38:17

标签: jsf jsf-2

我正在从JSF 1.1到JSF 2.0的迁移项目,我的一个自定义组件有这段代码。

MethodBinding mb = com.sun.faces.util.Util.createConstantMethodBinding(
                        String action
                   );
((XYZComponent)component).setAction(mb);

由于这是来自Sun jar,我没有JSF 2.0中的确切替代品。如果我继续将其更改为createMethodExpression(..),这会是一种正确的方法吗?

如果没有,请建议我替代方法。

1 个答案:

答案 0 :(得分:0)

这是您的代码,但使用的是JSF MethodExpression。

            FacesContext fc = FacesContext.getCurrentInstance();
            ELContext elContext = fc.getELContext();
            String action = "#{bean.doSomeThing(id)}";
            Class<?>[] parameterTypes = new Class[1];
            parameterTypes[0]=String.class;
            Class<? extends String> returnType = String.class;
            MethodExpression me = fc.getApplication().getExpressionFactory().createMethodExpression(elContext,action, returnType, parameterTypes);
            component.setActionExpression(me);