1. 程式人生 > >SSM應用(五)--參數綁定

SSM應用(五)--參數綁定

result value .get 數組 愛好 () 綁定 mapping 閱讀

參數綁定

  通過方法的輸入獲得參數的值叫做參數綁定;參數綁定可以分為簡單參數綁定、pojo類型參數綁定、vo類型參數綁定、數組類型參數綁定以及集合類型參數綁定;

簡單參數綁定

    頁面:

<form action="reg.action" method="post">
    用戶名:<input type="text" name="username" /><br/>
    密碼:<input type="text" name="password" /><br/>
    <input type="submit"
value="註冊" /> </form>

  當頁面傳遞的參數名和傳遞的參數名一致時,可以直接綁定輸入參數:  

//文本框的名字與參數的名字一樣的時候,可以直接實現參數綁定
@RequestMapping("/reg.action")
public String reg2(String username,String password) {
    System.out.println(username+","+password);
    return "result";    
}

  頁面所傳遞的參數名和輸入參數名不一致時,可以使用:@PequestParam;

//文本框與參數的名字不一致的時候:使用:@RequestParam:匹配頁面所產地的參數的名字
@RequestMapping("/reg.action")
public String reg(@RequestParam(value="username")String name,String password) {
    System.out.println(name+","+password);
    return "result";    
}

pojo類型參數綁定

  pojo 類:

public class User {
    private String username;
    
private String password; }

  對象類型:參數名與pojo類的屬性名一致的時候,參數值作為對象的屬性值,會直接綁定為對象;

<form action="reg.action" method="post">
    用戶名:<input type="text" name="username" /><br/>
    密碼:<input type="text" name="password" /><br/>
    <input type="submit" value="註冊" />
</form>

  controller層:

@RequestMapping("/reg.action")
public String reg(User user) {
    System.out.println(user);
    return "result";
}

vo類參數綁定

  vo類:

public class UserVO {
    private int id;
    private User user;
}

  在參數傳遞頁面,可以使用:對象.對象屬性名 做匹配

<form action="reg6.action" method="post">
    <!-- id參數名和vo的id屬性名一致的時候,可以直接綁定到vo對象 -->
    id:<input type="text" name="id" /><br/>
    <!--vo的另外一個屬性時user,參數名:類.屬性名 -->
    用戶名:<input type="text" name="user.username" /><br/>
    密碼:<input type="text" name="usser.password" /><br/>
    <input type="submit" value="註冊" />
</form>

  controller層:

@RequestMapping("/reg.action")
public String reg(UserVO userVO) {
    System.out.println(userVO);
    return "result";
}

數組類型參數的綁定

  和基本參數類型的綁定類似,可以直接通過數組名進行綁定;

    頁面:

<form action="reg.action" method="post">
    用戶名:<input type="text" name="username" /><br/>
    密碼:<input type="text" name="password" /><br/>
    愛好:
    <input type="checkbox" name="intrests" value="1">踢球
    <input type="checkbox" name="intrests" value="2">閱讀
    <input type="checkbox" name="intrests" value="3">編程
    <br/>
    <input type="submit" value="註冊" />
</form>

    controller層:

@RequestMapping("/reg.action")
public String reg(Integer[] intrests,User user) {
    System.out.println(intrests.length+","+user);
    return "result";
}

List類型參數綁定

  和VO對象參數綁定類似,在頁面中使用 list[i].屬性名 進行綁定;

    頁面:

<form action="reg.action" method="post">
    <!-- id參數名和vo的id屬性名一致的時候,可以直接綁定到vo對象 -->
    id:<input type="text" name="id" /><br/>
    用戶名:<input type="text" name="userlist[0].username" /><br/>
    密碼:<input type="text" name="userlist[1].password" /><br/>
    <input type="submit" value="註冊" />
</form>

    vo類:

public class UserVO {
    private int id;
    private List<User> userlist;
}

    controller層:

@RequestMapping("/reg.action")
public String reg(UserVO userVO) {
    System.out.println(userVO.getUserlist());
    return "result";
}

Map類型參數綁定

  在頁面中利用鍵值對的方式綁定參數;

    頁面:

<form action="reg.action" method="post">
    <!-- id參數名和vo的id屬性名一致的時候,可以直接綁定到vo對象 -->
    id:<input type="text" name="id" /><br/>

    用戶名:<input type="text" name="userMap[‘user1‘].username" /><br/>
    密碼:<input type="text" name="userMap[‘user1‘].password" /><br/>

    用戶名:<input type="text" name="userMap[‘user2‘].username" /><br/>
    密碼:<input type="text" name="userMap[‘user2‘].password" /><br/>
    <input type="submit" value="註冊" />
</form>

    vo類:

public class UserVO {
    private int id;
    private Map<String,User> userMap;
}

    controller層:

@RequestMapping("/reg8.action")
public String reg8(UserVO userVO) {
    System.out.println(userVO.getUserMap());
    return "result";
}

以上就是參數綁定方法的一些介紹了;

PS:因作者能力有限,如有誤還請諒解;

SSM應用(五)--參數綁定