spring mvc之Response - 1:返回值为void时如何跳转到指定页面

众所周知,如果在spring mvc中,我们要在请求完毕跳转到其他页面,需要在springmvc配置文件中配置解析器,然后重定向到指定页面

如果方法的返回值是void,如果手动重定向呢,

这里有三种方法,都是利用spring mvc获取到原生的servletApi对象去操作

代码如下:

package lingbug.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Controller
@RequestMapping("/testResponse")
public class ResponseController {

    @RequestMapping("/testVoid")
    public void testVoid() {
        //如果方法没有返回值,默认会去WEB-INF/pages文件夹找/controller/action.jsp页面,没有,就会404
        System.out.println("testVoid方法执行了...");
    }

    @RequestMapping("/testVoidToPage1")
    public void testVoidToPage1(HttpServletRequest req, HttpServletResponse res) throws Exception {
        System.out.println("testVoidToPage1方法执行了...");
        //转发需要加WEB-INF
        req.getRequestDispatcher("/WEB-INF/pages/responseSuccess.jsp").forward(req, res);
    }

    @RequestMapping("/testVoidToPage2")
    public void testVoidToPage2(HttpServletRequest req, HttpServletResponse res) throws Exception {
        System.out.println("testVoidToPage2方法执行了...");
        //重定向不用加WEB-INF,默认就是在WEB-INF文件夹下
        String url = req.getContextPath();
        //尽量不要把需要重定向的页面写在WEB-INF文件夹下,重定义会直接修改浏览器url去寻找,很大可能404
        res.sendRedirect(url + "/pages/responseSuccess.jsp");
    }

    @RequestMapping("/testVoidToPage3")
    public void testVoidToPage3(HttpServletRequest req, HttpServletResponse res) throws Exception {
        System.out.println("testVoidToPage3方法执行了...");
        //可以手动输出html
        res.setCharacterEncoding("UTF-8");
        res.setContentType("text/html;charset=UTF-8");
        res.getWriter().print("执行成功,手动输出response");
    }
}

 

Ending~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值