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";
        }
  • 相关阅读:
    生产者消费者模型
    查看网络通不通的几种方法
    tomcat在45秒内没有启动,启动超时
    request获取各种路径
    修改web项目发布路径
    web.xml不同版本的头
    Web.xml 错误或异常页面配置
    ModelAndView command
    java初始化顺序
    初始化时的过程
  • 原文地址:https://www.cnblogs.com/lastingjava/p/10013705.html
Copyright © 2011-2022 走看看