3

我正在尝试以编程方式添加命令链接,但我无法添加操作。

HtmlCommandLink link = new HtmlCommandLink();
link.setValue(data);
link.setActionExpression(no idea);

我如何创建它?

4

1 回答 1

5

使用ExpressionFactory#createMethodExpression().

这是一个方便的方法:

private static MethodExpression createMethodExpression(String expression, Class<?> returnType) {
    FacesContext context = FacesContext.getCurrentInstance();
    return context.getApplication().getExpressionFactory().createMethodExpression(
        context.getELContext(), expression, returnType, new Class[0]);
}

public String doSomething() {}如果您在由 标识的托管 bean 中有一个操作,那么您可以使用它的方法如下#{bean}

link.setActionExpression(createMethodExpression("#{bean.doSomething}", String.class));
于 2013-02-18T12:15:47.320 回答