0

これは、パラメーターを指定して richfaces jsFunction を使用する短い例です。

<r:jsFunction name="addTag" action="#{bean.method}">
   <r:param name="param" assignTo="#{bean.tagId}"/>
</r:jsFunction>

次に、javascript addTag('1') から使用でき、パラメーターが Bean に格納されます。

jsFunction と ding パラメーターをプログラムで作成するのと同じ機能を実現する必要があります。これは私が使用しているが機能しないコードです:

UIAjaxFunction jsFunctionAddTag = new UIAjaxFunction();
jsFunctionAddTag.setName("addTag");
FacesContext fc = FacesContext.getCurrentInstance();
ExpressionFactory ef = fc.getApplication().getExpressionFactory();
MethodExpression me = ef.createMethodExpression(fc.getELContext(), "#{bean.method}", 
                      null, new Class[]{});
jsFunctionAddTag.setActionExpression(me);
UIParameter param = new UIParameter();
param.setName("param");
param.setAssignToExpression(ef.createValueExpression(fc.getELContext(), 
                            "#{bean.tagId}", String.class));
jsFunctionAddTag.getChildren().add(param);

メソッドが実行されると、tagId の値は設定されません。私が間違っていることは何ですか?

4

1 に答える 1