我有2个控制器涉及相当简单的流程。其中一个进行一些处理,然后向另一个处理,然后重定向到呈现的页面。重定向失败,但没有错误。为了简化我的使用情况,并找出问题,我都倒了下来,以这3种方法 -sendRedirect不按预期工作
@RequestMapping(value="/provider/g1", method=RequestMethod.GET)
public void g1(HttpServletRequest request, HttpServletResponse response) {
logger.debug("In g1. posting to pr1");
try {
URI location = restTemplate.postForLocation("http://localhost:8082/provider/pr1", null);
logger.debug("post response=" + location.toString());
} catch (RestClientException re) {
logger.error("Unable to post to pr1.");
}
}
@RequestMapping(value="/provider/pr1", method=RequestMethod.POST)
public void pr1(HttpServletRequest request, HttpServletResponse response) {
logger.debug("In pr1. sending redirect to rd1");
// return "redirect:/provider/rd1";
try {
String rd1Path = "http://localhost:8082/provider/rd1";
response.sendRedirect(response.encodeRedirectURL(rd1Path));
} catch (IOException e) {
logger.error("Error redirecting to rd1");
e.printStackTrace();
}
}
@RequestMapping(value="/provider/rd1", method=RequestMethod.GET)
public void rd1(HttpServletRequest request, HttpServletResponse response) {
logger.debug("In rd1");
}
我曾经尝试都相对路径和完全合格的路径和它相同的结果。
- 我可以访问/ provider/rd1并获得预期的响应。
- 当我访问/ provider/g1时,我期待重定向到/ provider/rd1。
输出是 -
In g1. posting to pr1.
In pr1. sending redirect to rd1
post response=http://localhost:8082/provider/rd1
我想知道我做错了,我怎样才能使这项工作。
谢谢
SR
它看起来像我预期的行为。什么是错的? – axtavt