从支持 bean 调用 PrimeFaces 对话框
Call PrimeFaces dialog from backing bean
我希望当用户未登录时,单击 Add To Card
按钮后,应出现 Login
对话框。
这里是Book.xhtml
:
<h:form>
<p:commandButton value="Add To Card"
actionListener="#{booksBean.orderBook()}"
class="QtyBtn">
<f:ajax execute="@form" rendered="@form"/>
</p:commandButton>
</h:form>
这是豆子:
@Component
@Scope("session")
public class BooksBean implements Serializable {
...
public void orderBook() {
...
if (currentUser == null) { // show the login dialog
RequestContext.getCurrentInstance().openDialog("Login");
}
但是Login.xhtml
没有打开
首先,您要做的是使用 PrimeFaces Dialog Framework(DF)。
DF 让我们在对话框中打开 XHTML 视图
把这个添加到你的脸上-config.xml
<application>
<action-listener>
org.primefaces.application.DialogActionListener
</action-listener>
<navigation-handler>
org.primefaces.application.DialogNavigationHandler
</navigation-handler>
<view-handler>
org.primefaces.application.DialogViewHandler
</view-handler>
</application>
将您的 login.xhtml 页面创建为
任何 XHTML 页面。
将相应的结果添加到你的脸上-config.xml。例如,
<navigation-case>
<from-outcome>Login</from-outcome>
<to-view-id>/pages/login.xhtml</to-view-id>
<redirect />
</navigation-case>
用RequestContext.getCurrentInstance().openDialog("Login");
打开对话框
请注意,DF 在框架内打开新对话框。
我希望当用户未登录时,单击 Add To Card
按钮后,应出现 Login
对话框。
这里是Book.xhtml
:
<h:form>
<p:commandButton value="Add To Card"
actionListener="#{booksBean.orderBook()}"
class="QtyBtn">
<f:ajax execute="@form" rendered="@form"/>
</p:commandButton>
</h:form>
这是豆子:
@Component
@Scope("session")
public class BooksBean implements Serializable {
...
public void orderBook() {
...
if (currentUser == null) { // show the login dialog
RequestContext.getCurrentInstance().openDialog("Login");
}
但是Login.xhtml
没有打开
首先,您要做的是使用 PrimeFaces Dialog Framework(DF)。
DF 让我们在对话框中打开 XHTML 视图
把这个添加到你的脸上-config.xml
<application> <action-listener> org.primefaces.application.DialogActionListener </action-listener> <navigation-handler> org.primefaces.application.DialogNavigationHandler </navigation-handler> <view-handler> org.primefaces.application.DialogViewHandler </view-handler> </application>
将您的 login.xhtml 页面创建为 任何 XHTML 页面。
将相应的结果添加到你的脸上-config.xml。例如,
<navigation-case> <from-outcome>Login</from-outcome> <to-view-id>/pages/login.xhtml</to-view-id> <redirect /> </navigation-case>
用
RequestContext.getCurrentInstance().openDialog("Login");
打开对话框
请注意,DF 在框架内打开新对话框。