响应数据和结果视图

响应数据和结果视图

返回值类型

字符串

可实现通过视图解析器,跳转到对应名称的页面

@RequestMapping("/testString")
public String testString(Model model){
    System.out.println("testString方法执行了...");

    //模拟从数据库查询出User对象
    User user = new User();
    user.setUsername("Harlan");
    user.setPassword("123456");
    user.setAge(23);

    //存入model对象
    model.addAttribute("user", user);

    //跳转到success页面
    return "success";
}

视图解析器配置

<!-- 视图解析器 -->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>

同时可返回带有forward:redirect:关键字进行重定向或请求转发(不会通过视图解析器,需要自己写路径)

@RequestMapping("forwardOrRedirect")
public String forwardOrRedirect(){
    System.out.println("forwardOrRedirect方法执行了...");
    
    //请求转发
    return "forward:/WEB-INF/pages/success.jsp";
    
    //重定向
    return "redirect:/index.jsp";
}

Void

可通过获取RequestResponse对象进行请求转发或重定向实现跳转

@RequestMapping("testVoid")
public void testVoid(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("testVoid方法执行了...");
    
    //请求转发
    req.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(req, resp);
    
    //重定向
    resp.sendRedirect(req.getContextPath()+"success");
    
    //直接响应
	resp.setCharacterEncoding("utf-8");
	resp.setContentType("test/html;charset=UTF-8");
	resp.getWriter().println("Hello,World!");
}

ModelAndView对象

ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图

@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
    //模拟从数据库查询出User对象
    User user = new User();
    user.setUsername("Harlan");
    user.setPassword("123456");
    user.setAge(23);

    ModelAndView mv = new ModelAndView();
    //存入对象
    mv.addObject("user", user);
    //存入视图
    mv.setViewName("success");
    return mv;
}

@ResponseBody响应json数据

@RequestMapping("/testAjax")
public @ResponseBody() User testAjax(@RequestBody User user){
    System.out.println("testAjax方法执行了...");
    System.out.println(user);

    //模拟从数据库查询出User对象
    user.setUsername("admin");
    user.setPassword("123321");
    user.setAge(33);

    return user;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值