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";
        }
  • 相关阅读:
    www.redgate.com网站淘宝之旅
    C#判断中文字符 收藏
    .NET 4.0 Interop新特性ICustomQueryInterface (转载)
    Marshaling between Managed and Unmanaged Code(转载)
    AE+C# 实现MERGE, AE实现相同结构图层的合并C#代码(转载)
    Flex屏蔽并自定义鼠标右键菜单(转载)
    面向 Microsoft OracleClient 开发人员的 ODP.NET(资料收集)
    在 Oracle 数据库上使用 Visual Studio 2005 或 2008 构建 .NET 应用程序(官方文章转载)
    HTTP 500 内部服务器错误 IIS
    Resolving Http 500 Server Errors in ASP.Net and IIS 5.1(转载)
  • 原文地址:https://www.cnblogs.com/lastingjava/p/10013705.html
Copyright © 2011-2022 走看看