Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Twilio的Spring MVC控制器重定向_Java_Spring_Twilio - Fatal编程技术网

Java 使用Twilio的Spring MVC控制器重定向

Java 使用Twilio的Spring MVC控制器重定向,java,spring,twilio,Java,Spring,Twilio,我有一个twilio应用程序,我正试图使用相同的代码将其分为西班牙语和英语。想法很简单,将XML分成两个函数,分别指定西班牙语版本或英语版本。这很好,但是我遇到了重定向控制器的问题 我看到的所有答案都是返回“重定向:/route”,但对于Twilio,这只会导致手机用英语说“重定向/route”,然后挂断电话 我做错了什么 //assign english data and redirect to IVR greeting method @RequestMapping(value = "/ivr

我有一个twilio应用程序,我正试图使用相同的代码将其分为西班牙语和英语。想法很简单,将XML分成两个函数,分别指定西班牙语版本或英语版本。这很好,但是我遇到了重定向控制器的问题

我看到的所有答案都是返回“重定向:/route”,但对于Twilio,这只会导致手机用英语说“重定向/route”,然后挂断电话

我做错了什么

//assign english data and redirect to IVR greeting method
@RequestMapping(value = "/ivr/en")
public String ivrLangEn(@RequestParam("CallSid") String callID) {
    //english xml string assignments here
    return "redirect:/irv";
}

//assign spanish data and redirect to IVR greeting method
@RequestMapping(value = "/ivr/sp")
public String ivrLangSp(@RequestParam("CallSid") String callID) {
    //spanish xml string assignments here
    return "redirect:/ivr";
}

@RequestMapping(value = "/ivr", produces = MediaType.APPLICATION_XML_VALUE)
/*
 * Main greeting method. Display greeting and default to question one
 * @return returns the XML for the greeting and question one
 */
@ResponseBody
public String greeting(@RequestParam("CallSid") String callID) {
    repository.save(new Feedback(callID));
    String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
        "<Response>"+
            "<Say>Hello.</Say>"+
            one +
        "</Response>";
    return xml;
}
//分配英文数据并重定向到IVR问候语方法
@请求映射(value=“/ivr/en”)
公共字符串ivrLangEn(@RequestParam(“CallSid”)字符串callID){
//此处为英语xml字符串赋值
返回“重定向:/irv”;
}
//分配西班牙语数据并重定向到IVR问候语方法
@请求映射(value=“/ivr/sp”)
公共字符串ivrLangSp(@RequestParam(“CallSid”)字符串callID){
//此处为西班牙语xml字符串赋值
返回“重定向:/ivr”;
}
@RequestMapping(value=“/ivr”,products=MediaType.APPLICATION\u XML\u value)
/*
*主要问候方式。显示问候语并默认为问题1
*@return返回问候语和问题1的XML
*/
@应答器
公共字符串问候语(@RequestParam(“CallSid”)字符串callID){
保存(新反馈(callID));
字符串xml=“”+
""+
“你好。”+
一个+
"";
返回xml;
}

结果表明,Twilio只是从控制器输出一个字符串返回。我发现我需要像这样使用
ModelAndView
重定向:

return new ModelAndView("redirect:/ivr");

这是问候()方法吗?删除
@ResponseBody
也可以:)使用
@ResponseBody
,Spring将字符串输出到ServletResponse,这就是您的问题。我在寻找答案时添加了
@ResponseBody
。对于twilio,它不顾一切地说了出来。现在不需要了,来这里看看,举个具体的例子,对不起,我误读了你的代码,请忽略我关于
@ResponseBody
的评论,但是阅读
重定向
前缀:)不会有什么坏处