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";
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM