zoukankan      html  css  js  c++  java
  • SpringMVC自动注入

    /**
     * SpringMVC自动注入
     * @author Administrator
     *
     */
    @Controller
    public class DemoController {
        /**
         * SpringMVC很厉害,有自动注入的功能,当form表单中值的name与实体类的
         * 属性名一样时,会自动注入实体类,如果不一样,会设为实体类里的属性设
         * 置一个null值,如果实体类里有基本数据类型,不能设置为null,则报错400
         * @param product
         */
        @RequestMapping("demo1")
        public void demo1(Product product) {
            System.out.println(product);
        }
        /**
         * 如果前端传过来的值的名称与参数的名称相同,SpringMVC会自动注入
         * 如果名称不相同,可以通过注解来解决
         * RequestParam("value") value 为前端传过来值的名称
         * @param name 
         * @param price
         */
        @RequestMapping("demo2")
        public void demo2(@RequestParam("name") String name1,@RequestParam("price")int price1) {
            System.out.println(name1+" "+price1);
        }
        /**
         * 加上required后代表该属性一定要被赋值,否则报错
         * @param name
         * @param price
         */
        @RequestMapping("demo3")
        public void demo3(@RequestParam(required=true)String name,@RequestParam()int price) {
            System.out.println(name+" "+price);
        }
    }
        /**
         * 当浏览器传过来有多个同名参数时,用一个集合来接收,并且使用@RequestParam
         */
        @RequestMapping("demo4")
        public String demo4(@RequestParam("hover")List<String> list) {
            System.out.println(list);
            //跳转到login.jsp
            return "/login.jsp";
        }

    当浏览器传的值要赋给类里面的类属性时:

    <a href="demo5?teacher.name=teacherName">show!!</a>

    控制器方法:

        /**
         * 浏览器传来的值要赋给一个类里的对象属性时
         */
        @RequestMapping("demo5")
        public String demo5(Student studnet) {
            System.out.println(studnet);
            return "/login.jsp";
        }

    Student class:

    public class Student {
        private String name;
        private Teacher teacher;

    当浏览器传的值要赋给类里面的集合时:

    表单:

            <form action="demo6" method="get">
                <input type="text" name="teacherList[0].name">
                <input type="text" name="teacherList[1].name">
                <input type="submit" value="add" />
            </form>

    控制器类:

        /**
         * 浏览器传来的值要赋给一个类里的对象属性时
         */
        @RequestMapping("demo5")
        public String demo5(Student studnet) {
            System.out.println(studnet);
            return "/login.jsp";
        }
        @RequestMapping("demo6")
        public String demo6(Student student) {
            System.out.println(student);
            return "/login.jsp";
        }

    实体类Student:

    public class Student {
        private List<Teacher> teacherList;

    新新技术 使用restful传值:

    <a href="demo7/requestName/999">restful</a>

        /**
         * restful传值方式,比传统的书写更方便,新项目都会采用
         * 使用{}来取值,{}里的名字自定义
         * 在参数里使用@PathVariable注解
         */
        @RequestMapping("demo7/{name}/{level}")
        public String demo7(@PathVariable("name")String name,@PathVariable("level")int level) {
            System.out.println(name+" "+level);
            return "/login.jsp";
        }
  • 相关阅读:
    使用一个Python脚本来运行一个简单的Django项目
    创建第一个Django项目
    Windows下安装Python3和Django
    node.js使用node-xlsx读写数据
    U盘分区后合并
    linux命令学习-3-sysctl
    linux命令学习-2-dmesg
    linux命令学习-1-less
    在服务器上排除问题的头五分钟
    c++读取REG_MULTI_SZ类型注册表
  • 原文地址:https://www.cnblogs.com/lastingjava/p/10013705.html
Copyright © 2011-2022 走看看