我想在 ajax 事件中懒惰地呈现ui:composition
,一个xhtml文件。
新的ui:composition
需要在面板或div中呈现。
在rails中我这样做
render :partial => "file", :layout => :none
修改
还有一种方法可以将locals传递给rails中的局部视图
render :partial => "file", :layout => :none, :locals => {:some_object => @some_object}
如何将对象发送到此以呈现视图。
我在xhtml中使用以下代码:
<p:commandButton id="selectButton" value="Add" title="Add User" type="submit"
action="#{userBean.add}">
<f:ajax render=":userLanding:addPanel"/>
</p:commandButton>
我的ManagedBean里面有
public String add()
{
return "user"; // i need to open user.xhtml page.
}
<div id="addPanel">
或更好<p:panelGroup layout="block" id="addPanel">
userBean#add()
负责渲染abc.xhtml,需要在我的ui容器中渲染。
目前它重定向到页面(abc.xhtml)而不是在目标面板/ div内呈现。
这种视图加载的JSF方式是什么?
编辑2:
我也尝试过:
<h:panelGroup>
<ui:include src = "user.jsf"
</h:panelGroup>
但条件是:ui include应仅在按钮点击事件上,src文件将显示在面板内(无导航)。
答案 0 :(得分:0)
PrimeFaces <f:ajax>
组件不支持<p:xxx>
。您应该使用<p:ajax>
,或者在此特定情况下,只使用PrimeFaces UICommand
组件自己的update
属性。
<p:commandButton ... update=":userLanding:addPanel" />
您只需确保操作方法返回null
或void
,否则仍会进行导航。