1

BeanUtils.setProperty入れ子になったプロパティやインデックス付きのプロパティを設定するために、JSP/JSF 式言語 (EL) を明示的に呼び出す方法はありますか?

たとえば、呼び出しBeanUtils.setProperty(object, "foo.bar", "value")object.getFoo().setBar("value")リフレクションを介した呼び出しになります。

代わりにELでそれを行う方法はありますか?

私がやろうとしていることは似ています<h:inputText value="#{object.foo.bar}">が、「object.foo.bar」プロパティ式が動的である可能性があるUIを介するのではなく、バックエンドメソッドです。私はBeanUtils動作することを知っていますが、やや古風に感じます。

4

1 に答える 1

0

これに使えますValueExpression#setValue()

FacesContext context = FacesContext.getCurrentInstance();
ELContext elContext = context.getELContext();
ValueExpression expression = context.getApplication().getExpressionFactory()
    .createValueExpression(elContext, "#{object.foo.bar}", String.class);
expression.setValue(elContext, "value");
于 2012-07-03T16:59:40.287 に答える