struts2中使用重定向redirect报错404.转发没有问题,使用redirectAction重定向到action没有问题,求解 ?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2中使用重定向redirect报错404.转发没有问题,使用redirectAction重定向到action没有问题,求解 ?相关的知识,希望对你有一定的参考价值。

参考技术A 哎呀,这是个经典的错误,问题来了,你们老师没告诉你,tomcat项目的结构?
是这样的,tomcat中,为了保证某些页面的安全性(不然用户直接输入路径就能访问)所以有安全目录WEB-INF,这个目录下的所有文件页面都不能输入地址直接访问,否则一律报错,但是可以通过服务器的action或者servlet ,jsp之类的服务端程序(因为服务端程序可以判断逻辑,比如用户是否用权限)读取这里面的页面再将页面写出去,转发就是这个原理,并非访问了那个页面,而是服务器读取了哪个页面然后使用输出流响应回去!
总之,WEB-INF只有服务器写程序才能访问,比如自带的转发,或者你写个文件流也行的,但是客户端(浏览器)是不能直接找到这个目录的(tomcat不会响应和查找这个目录下的文件)!
参考技术B 试试将那个web-inf去掉,直接写/jsp_three.jsp

Spring Boot项目@RestController使用重定向redirect

Spring MVC项目中页面重定向一般使用return "redirect:/other/controller/";即可。而Spring Boot使用了@RestController注解,上述写法只能返回字符串,解决方法如下:

将一个HttpServletResponse参数添加到处理程序方法然后调用response.sendRedirect("some-url");

@RestController
public class FooController {

  @RequestMapping("/foo")
  void handleFoo(HttpServletResponse response) throws IOException {
    response.sendRedirect("some-url");
  }

}

 

参考:

https://stackoverflow.com/questions/29085295/spring-mvc-restcontroller-and-redirect

以上是关于struts2中使用重定向redirect报错404.转发没有问题,使用redirectAction重定向到action没有问题,求解 ?的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress使用wpu redirect()重定向

Struts2框架使用之关于Struts2的result配置

struts2拾遗

Struts2 JQuery:Ajax 提交表单、服务器表单验证和成功重定向

Laravel5 - 重定向 redirect 函数的详细使用

struts2的result的type属性