在页面加载时开始对话

Posted

技术标签:

【中文标题】在页面加载时开始对话【英文标题】:Start conversation on page load 【发布时间】:2011-10-05 16:53:58 【问题描述】:

我是 Java EE 6 的初学者,最近正在玩对话。当 JSF 页面被加载(如在 Seam 中)时,我无法找到如何立即开始对话。这可行吗?

【问题讨论】:

【参考方案1】:

这是可行的。

页面:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <f:view contentType="text/html">
        <f:metadata>
            <f:event type="preRenderView" listener="#myBean.preRenderView"/>
        </f:metadata>
        <h:head>
            <title>My Page</title>
        </h:head>
        <h:body>
            <!-- Body here -->
        </h:body>
    </f:view>
</html>

豆子:

import java.io.Serializable;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.faces.event.ComponentSystemEvent;
import javax.inject.Inject;
import javax.inject.Named;

@Named
@ConversationScoped
public class MyBean implements Serializable 
    public void preRenderView(ComponentSystemEvent e) 
        String currentViewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
        if (CONVERSATION_START_PAGE.equals(currentViewId)) 
            conversation.begin();
    

    @Inject
    private Conversation conversation;

    private static final String CONVERSATION_START_PAGE = "/foo/bar/start-page.xhtml";

【讨论】:

以上是关于在页面加载时开始对话的主要内容,如果未能解决你的问题,请参考以下文章

页面加载时没有出现jquery对话框[重复]

在页面重新加载时与 Skype Web SDK 进行对话

页面加载时的 jQuery Mobile 对话框

加载 WebView 页面时如何为警报对话框设置不同的标题?

如何在页面加载之前隐藏 CDHTMLDialog?

如何将 ASPX 页面加载到 JQuery 对话框中