首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rivr DialogueFactory中对不同的对话框只使用一个VoiceXML

如何在Rivr DialogueFactory中对不同的对话框只使用一个VoiceXML
EN

Stack Overflow用户
提问于 2015-09-23 15:07:34
回答 1查看 34关注 0票数 1

我正在使用VoiceXmlDialogueFactory创建一些对话的类,我想知道如何检查哪个是在对话框中配置的类名(在web.xml中),所以我不必为每个对话框创建一个DialogueFactory类,而且我可以在create方法中这样做。我检查过这个方法:

代码语言:javascript
复制
public VoiceXmlDialogue create(DialogueInitializationInfo<VoiceXmlInputTurn, VoiceXmlOutputTurn, VoiceXmlDialogueContext> initializationInfo) throws DialogueFactoryException {

但是没有找到从哪里得到com.nuecho.rivr.voicexml.dialogue.class参数。我可以以其他方式读取一个特定的参数,它也能起到这个作用。

谢谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-24 01:45:02

如果我正确理解,您需要一个DialogueFactory类,它可以根据某些外部数据创建不同的对话(不同的VoiceXmlDialogue类)。这就是DialogueFactory的目的,真的。

最直接的方法是使用初始HTTP请求中的一些内容(比如参数或路径)来确定要构建什么对话。您可以通过将HttpServletRequest的initializationInfo参数转换为WebDialogueInitializationInfo来获得WebDialogueInitializationInfo。在此对象中,您将找到可用于执行所需逻辑的其他属性。您甚至可以访问servlet上下文。

因此,使用查询参数,您可以创建正确的对话框。http://server.exemple.com/application/dialogue?type=abc

代码语言:javascript
复制
public class DialogueFactory implements VoiceXmlDialogueFactory {

    @Override
    public VoiceXmlDialogue create(
            DialogueInitializationInfo<VoiceXmlInputTurn, VoiceXmlOutputTurn, VoiceXmlDialogueContext> initializationInfo)
            throws DialogueFactoryException {

        if (!(initializationInfo instanceof WebDialogueInitializationInfo))
            throw new DialogueFactoryException("Can only work in web mode.");

        WebDialogueInitializationInfo<?, ?, ?> webInitializationInfo = 
            (WebDialogueInitializationInfo<?, ?, ?>) initializationInfo;

        String dialogueType = webInitializationInfo.getHttpServletRequest().getParameter("type");

        // Then use dialogueType to build the right kind of Dialogue.
    }
}

您还可以使用路径信息:http://server.exemple.com/application/dialogue/abc

类似的信息请参见这份食谱条目

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32743191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档