SpringMVC的数据响应
SpringMVC的数据响应方式
代码参考上一篇博客:https://blog.csdn.net/GLOAL_COOK/article/details/112759926
页面跳转:
第一种方式:直接返回字符串:
第二种方式:通过ModelAndView对象返回
test1.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ page isELIgnored ="false" %><html><html><head> <title>成功页面</title></head><body><h1>test1.jsp成功,欢迎${username}! </h1></body></html>
spring-mvc.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--context:include-filter代表只扫cn.itcast的org.springframework.stereotype.Controller的注解--><context:component-scan base-package="cn.itcast"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter></context:component-scan><!--配置内部资源视图解析器,viewResolver是随便起的id--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--简化/view/test1.jsp--> <property name="prefix" value="/view/"></property> <!--改前缀,view是你项目webapp下的一个目录,可以改为其他的目录--> <property name="suffix" value=".jsp"></property> <!--改后缀--></bean></beans>
QuickController :
package cn.itcast.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;/** * @author QLBF * @version 1.0 * @date 2021/1/17 21:10 */@Controller@RequestMapping("/user") //一级访问目录public class QuickController { //加了类RequestMapping一级,在方法加二级的话就要localhost:8080/user/quick1访问了,而且下面跳转的suceess.jsp前面要加/ //value只有一个才能省,多个method之后就不能省了,params代表是你请求时一定要携带{}里面的字符串来请求 @RequestMapping(value = "/quick1",method = RequestMethod.GET/*,params = {"username"}*/) public String save(){ System.out.println("Controller save running..."); return "test1"; //会转发访问test1.jsp } @RequestMapping(value = "/quick2") //value只有一个可省 public ModelAndView save2(){ /* Model:模型 作用封装数据,就是类似setattribute,然后你就可以在jsp通过el表达式获取值 View:视图 作用展示数据,就是设置跳转或重定向到哪个jsp */ ModelAndView modelAndView=new ModelAndView(); //设置模型数据 modelAndView.addObject("username","zhangsan"); //设置视图名称 modelAndView.setViewName("test1"); //省略就是默认是转发,还是通过前后缀访问view里面的test1.jsp return modelAndView; } @RequestMapping(value = "/quick3") public ModelAndView save3(ModelAndView modelAndView){ /* Model:模型 作用封装数据,就是类似setattribute,然后你就可以在jsp通过el表达式获取值 View:视图 作用展示数据,就是设置跳转或重定向到哪个jsp */ //设置模型数据 modelAndView.addObject("username","lisi3"); //设置视图名称 modelAndView.setViewName("test1"); //省略就是默认是转发,还是通过前后缀访问view里面的test1.jsp return modelAndView; } @RequestMapping(value = "/quick4") public String save4(Model model){ /* Model:模型 作用封装数据,就是类似setattribute,然后你就可以在jsp通过el表达式获取值 View:视图 作用展示数据,就是设置跳转或重定向到哪个jsp */ //设置模型数据,可以分开模型和视图的 model.addAttribute("username","lisi4"); //设置视图 return "test1"; } @RequestMapping(value = "/quick5") //少用,都用框架了还用老东西干嘛 public String save5(HttpServletRequest request){ request.setAttribute("username","旧东西5"); return "test1"; }}
save2~4用的多点,下面只演示save2():
访问http://localhost:8080/user/quick2(就改最后的quick数字就测试对应的方法了):
赞 (0)