JSP中errorPage无法跳转的解决办法

jsp编译指令page有errorPage和isErrorPage这两个属性,可以实现自定义友好异常界面。errorPage指定异常后要跳转到哪个页面,此jsp页面必须是isErrorPage=“true”。

一个简单的例子

test.jsp的代码如下:

<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %>    //指定异常后要跳转的页面为error.jsp
<html>
<head>
  <title>欢迎</title>
</head>
<body>
  欢迎学习jsp知识
  <%
  out.println(new java.til.Date(  ));        //此处为出错的地方
  %>
</body>
</html>

error.jsp代码如下:

<%@ page contentType="text/html; charset=UTF-8" isErrorPage="true"%>
<html>
<head>
    <title>错误提示页面</title>
</head>
<body>
系统出现异常<br/>
</body>
</html>
然后,运行后的结果却有些意料之外,还是那个我们非常熟悉的Http Status 500错误。

原因有两个:

一、IE浏览器问题

如果你使用的是IE浏览器,那么可能的问题是IE的设置。

解决办法:在IE的设置--Intent选项--高级中取消掉“显示友好HTTP错误信息”这一项。

二、错误类型问题

如果你使用的是火狐或者设定好的IE,还是无法解决的话,那么就是错误类型问题了。

例子中的错误是语法错误,这种错误是不会跳转的。

只有Exception才能跳转,比如下面这个jsp页面就可以。

<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %>
<html>
<head>
  <title>欢迎</title>
</head>
<body>
  欢迎学习Java Web知识
  <%=1/0%>
</body>
</html>


Spring Boot默认情况下并不支持直接跳转JSP页面,因为它倾向于RESTful风格的应用开发。要实现从`hello.jsp`页面通过表单提交跳转到`index.jsp`,你需要配置一些额外的东西。首先,确保你的项目包含了对Thymeleaf或者FreeMarker的支持,因为它们可以与Spring Boot集成以渲染JSP。 **步骤1**: 添加模板引擎依赖 在`pom.xml`添加对应的模板引擎依赖(如Thymeleaf): ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` **步骤2**: 创建视图解析器 在`application.properties`或`application.yml`文件配置视图解析器: ```properties server.view.prefix=/pages/ server.view.suffix=.jsp ``` 这告诉Spring Boot你的JSP页面位于`pages`目录下,并且扩展名为`.jsp`。 **步骤3**: 编写Controller处理表单提交** 创建一个Controller来接收表单数据并决定如何响应: ```java @Controller public class HomeController { @GetMapping("/hello") public String handleHello(@RequestParam(value="submit", required=false, defaultValue="") String action) { if ("goToIndex".equals(action)) { // 假设这是提交按钮的名称 return "redirect:/index"; // 跳转到index.jsp } return "hello"; // 如果未提交或提交其他动作,则返回hello.jsp } } ``` 在这个例子,如果提交按钮名为"submit"并且值为"goToIndex",则会重定向到`/index`。 **相关问题--:** 1. 如何在Spring Boot启用FreeMarker作为模板引擎? 2. 如果不想使用模板引擎,如何在纯Spring MVC项目处理JSP跳转? 3. Spring Boot如何避免默认的Whitelabel Error Page
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值