SprinMVC前后端相互传递数据的方式

版权声明:本文为博主原创文章,版权归原作者小思所有,转载或者引用本文内容请注明来源及原作者 https://blog.csdn.net/zeal9s/article/details/83663337

控制层的代码(后台)

StudentControler.java

package com.zs.controler;

import com.zs.entity.Student;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @author 小思
 * @PackageName:com.zs.controler
 * @ClassName: StudentControler
 * @Description:学生类的控制层
 * @date 2018/11/2 16:42
 */

//标明此类是控制器
@Controller
public class StudentControler {
    //注解外部请求的路径/test1
    //?:匹配请求路径中的一个目录?/test
    //*:代表请求路径的一级目录不区分目录名字符数*/test1
    //**:代表请求路径的多级目录不区分目录名字符数**/test1

    //@RequestMapping方式一:括号的值直接填写跳转路径,此路径不包括上级目录
    @RequestMapping("/test1")
    public String test1() {
        System.out.println("test1方法被访问");
        //核心配置文件有配置内部视图解析器的前后缀,合起来就是/success.jsp
        return "success";
    }

    //@RequestMapping方式二:
    @RequestMapping(value = "test2", method = RequestMethod.GET)
    public String test2() {
        System.out.println("test2方法被访问");
        return "success";
    }



    //前端向后台传递数据的三种方式
    //方式一:直接传字符串
    @RequestMapping("/test3")
    public String test3(String sname,String ssex){
        System.out.println("test3前端向后台传递数据成功");
        System.out.println(sname + "\t" + ssex);
        return "success";
    }

    //方式二:传对象
    @RequestMapping(value = "/test4",method = RequestMethod.POST)
    public String test4(Student s){
        System.out.println("test4前端向后台传递数据成功");
        System.out.println(s.getSname() + "\t" + s.getSsex());
        return "success";
    }

    //方式三:使用注解
    @RequestMapping(value = "/test5",method = RequestMethod.POST)
    public String test5(@RequestParam("sname") String sname,@RequestParam("ssex") String ssex){
        System.out.println("test5前端向后台传递数据成功");
        System.out.println(sname + "\t" + ssex);
        return "success";
    }

    //后端向前端传递数据的三种方式
    //方式一:使用map集合
    @RequestMapping("/test6")
    public String test6(Map map){
        map.put("sname","小小");
        map.put("ssex","男");
        return "success";
    }

    //方式二:使用Servlet对象
    @RequestMapping("/test7")
    public String test7(Student student, HttpServletRequest request){
        student.setSname("小小");
        student.setSsex("男");
        request.setAttribute("student",student);
        return "success";
    }

    //方式三:使用模型视图
    @RequestMapping("/test8")
    public ModelAndView test8(Student student){
        student.setSname("小小");
        student.setSsex("男");
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject(student);
        //设置返回的视图名称
        modelAndView.setViewName("success");
        return modelAndView;
    }


}

视图层的代码(前端)

submit.jsp

<%--
 @Name: submit
 @Description: 
 @author 小思
 @date 2018/11/2 23:35
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>测试前端向后台传递的数据</title>
</head>
<body>
<form action="/test5.action" method="post">
    用户名:<input type="text" name="sname"><br>
    性别:<input type="text" name="ssex"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

success.jsp

<%--
 @PackageName:
 @ClassName: success
 @Description: 
 @author 小思
 @date 2018/11/2 21:53File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
<html>
<head>
    <title>测试后台向前端传递的数据</title>
</head>
<body>
test6传递的参数:${sname}&emsp;&emsp;${ssex}<br>
test7/8传递的参数:${student.sname}&emsp;&emsp;${student.ssex}
</body>
</html>

说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

猜你喜欢

转载自blog.csdn.net/zeal9s/article/details/83663337