Java 使用Twilio的Spring MVC控制器重定向
我有一个twilio应用程序,我正试图使用相同的代码将其分为西班牙语和英语。想法很简单,将XML分成两个函数,分别指定西班牙语版本或英语版本。这很好,但是我遇到了重定向控制器的问题 我看到的所有答案都是返回“重定向:/route”,但对于Twilio,这只会导致手机用英语说“重定向/route”,然后挂断电话 我做错了什么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
//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
的评论,但是阅读重定向
前缀:)不会有什么坏处