SpringMVC的数据响应

SpringMVC的数据响应方式

代码参考上一篇博客:https://blog.csdn.net/GLOAL_COOK/article/details/112759926
页面跳转:

第一种方式:直接返回字符串:

SpringMVC的数据响应

第二种方式:通过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>

SpringMVC的数据响应
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数字就测试对应的方法了):
SpringMVC的数据响应

上一篇:thymeleaf获取ModelAndView值


下一篇:简单介绍下 springMVC 和 struts2 的区别有哪些?