0
這是使用richfaces jsFunction和參數的簡短示例。以編程方式將UiParameter添加到UIAjaxFunction
<r:jsFunction name="addTag" action="#{bean.method}">
<r:param name="param" assignTo="#{bean.tagId}"/>
</r:jsFunction>
然後您可以使用從javascript addTag('1')並將參數存儲到bean中。
我需要完成相同的功能,以編程方式創建jsFunction和ading參數。這是我使用但不工作的代碼:
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的值未設置。我做錯了什麼?