如何以编程方式访问组件值

时间:2011-09-26 12:04:17

标签: jsf jsf-2

让我们假设我想访问ActionListener中兄弟组件的值。

以下片段未按预期工作,导致ClassCastException:java.util.HashSet无法强制转换为java.lang.String

public void processAction(final ActionEvent event) {

    FacesContext ctx = FacesContext.getCurrentInstance();
    UIComponent sibling = event.getComponent().findComponent("inputText");

    String value = (String) sibling.getValue();
    ...
}

如果我将基本部分更改为以下片段,一切正常:

String value = ctx.getApplication().evaluateExpressionGet(ctx, inputText.getValueExpression("value").getExpressionString(), String.class);

有更好的解决方案吗?为什么输入文本的值为HashSet类型?

提前谢谢

0 个答案:

没有答案