问题:使用动态模型来创建 Primefaces 组件,例如Menubar
移除了在 JSF/XHTML 页面中指定要通过 Ajax 更新哪些组件的能力。在 Java back bean 中对其进行硬编码似乎是一种不好的做法。
例子:
JSF:
<h:panelGroup id="updateDiv">
<!-- components -->
</h:panelGroup>
<p:menubar model="#{backBean.model}" />
回豆:
@ManagedBean
@ViewScoped
public class BackBean {
private MenuModel model;
public BackBean() {
model = new DefaultMenuModel();
MenuItem item = new MenuItem();
item.setUpdate("updateDiv"); // Here: hardcoded dependency on JSF page.
item.setValue("Click Me.");
model.addMenuItem(item);
}
public getModel() {
return model;
}
}
updateDiv
在将其BackBean
耦合到 JSF 页面中指定。这似乎很糟糕?是吗?如果是这样,有哪些替代方案?也许使用<f:param/>
或类似的东西可能会有所帮助。