Storm框架:Storm整合springboot
阿新 • • 發佈:2020-09-01
SpringMVC 引數繫結的方式
- 基本資料型別、字串資料繫結
- 陣列型別
- vo 型別
- list 型別
- set 型別
- Map 型別資料
- 自定義複合型別
案例實操
請求引數到處理器功能處理方法的方法引數上的繫結,對於引數繫結非常靈活
a).基本資料型別、字串資料繫結
/** * 簡單資料型別 值必須存在 不傳可以通過預設值代替 */ @RequestMapping("data1") public void data1(@RequestParam(defaultValue="10",name="age")int age, @RequestParam(defaultValue="1",name="flag")boolean flag, @RequestParam(defaultValue="100",name="s")double s){ System.err.println("age:"+age+":flag:"+flag+":s:"+s); } /** * 包裝型別 值可以為空 */ @RequestMapping("data2") public void data2(Integer age,Double s){ System.err.println("age:"+age+":s:"+s); } /** * 字串注入 * @param str */ @RequestMapping("data3") public void data3(String str){ System.err.println("str:"+str); }
b).陣列型別
@RequestMapping("/dataTest3")
public void getParamsData3(@RequestParam(value="ids")String[] ids){
for(String id:ids){
System.out.println(id+"---");
}
}
c).vo 型別
@RequestMapping("/dataTest4") public void getParamsData4(User user){ System.out.println(user); }
d).list 型別
此時 user 實體需要定義 list 屬性
import java.util.ArrayList; import java.util.List; public class User { private int id; private String userName; private String userPwd; private List<Phone> phones=new ArrayList<Phone>(); public List<Phone> getPhones() { return phones; } public void setPhones(List<Phone> phones) { this.phones = phones; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } @Override public String toString() { return "User [id=" + id + ", userName=" + userName + ", userPwd=" \+ userPwd + ", phones=" + phones + "]"; } }
Phone 實體
public class Phone {
private String num;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
@Override
public String toString() {
return "Phone [num=" + num + "]";
}
}
Jsp 頁面定義
<form action="dataTest5.do" method="post">
<input name="phones[0].num" value="123456" />
<input name="phones[1].num" value="4576" />
<button type="submit"> 提交</button>
</form>
Controller 方法:
@RequestMapping("/dataTest5")
public void getParamsData5(User user){
System.out.println(user);
}
e).set 型別
set 和 List 類似,也需要繫結在物件上,而不能直接寫在 Controller 方法的引數中。但是,繫結 Set 資料時,必須先在 Set 物件中 add 相應的數量的模型物件。
無序儲存的原因
public class User {
private int id;
private String userName;
private String userPwd;
private Set<Phone> phones=new HashSet<Phone>();
public User() {
phones.add(new Phone());
phones.add(new Phone());
phones.add(new Phone());
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public Set<Phone> getPhones() {
return phones;
}
public void setPhones(Set<Phone> phones) {
this.phones = phones;
}
}
Controller 方法:
@RequestMapping("/dataTest6")
public void getParamsData6(User user){
System.out.println(user);
}
表單頁面
<form action="dataTest6.do" method="post">
<input name="phones[0].num" value="123456" />
<input name="phones[1].num" value="4576" />
<input name="phones[2].num" value="4576" />
<button type="submit"> 提交</button>
</form>
f).Map 型別資料
Map 最為靈活,它也需要繫結在物件上,而不能直接寫在 Controller 方法的引數中。
public class User {
private int id;
private String userName;
private String userPwd;
private Set<Phone> phones=new HashSet<Phone>();
private Map<String, Phone> map=new HashMap<String, Phone>();
public User() {
phones.add(new Phone());
phones.add(new Phone());
phones.add(new Phone());
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public Set<Phone> getPhones() {
return phones;
}
public void setPhones(Set<Phone> phones) {
this.phones = phones;
}
public Map<String, Phone> getMap() {
return map;
}
public void setMap(Map<String, Phone> map) {
this.map = map;
}
}
Controller 方法:
@RequestMapping("/dataTest7")
public void getParamsData7(User user){
Set<Entry<String, Phone>> set=user.getMap().entrySet();
for(Entry<String, Phone> entry:set){
System.out.println(entry.getKey()+"--"+entry.getValue().getNum());
}
}
表單頁面
<form action="dataTest7.do" method="post">
<input name="map['1'].num" value="123456" />
<input name="map['2'].num" value="4576" />
<input name="map['3'].num" value="4576" />
<button type="submit"> 提交</button>
</form>
g).自定義複合型別
user 實體 引用 Phone 實體
public class User {
private int id;
private String userName;
private String userPwd;
private Phone phone;
public int getId() {
return id;
}
public Phone getPhone() {
return phone;
}
public void setPhone(Phone phone) {
this.phone = phone;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
}
Controller 方法:
@RequestMapping("/dataTest8")
public void getParamsData8(User user){
System.out.println(user.getUserName()+"---"+user.getUserPwd()+"-"+user.getPhone().getNum());
}
表單頁面
<form action="dataTest8.do" method="post">
<input name="userName" value="123456" />
<input name="userPwd" value="4576" />
<input name="phone.num" value="4576" />
<button type="submit"> 提交</button>
</form>
擴充套件~什麼是資料校驗?
這個比較好理解,就是用來驗證客戶輸入的資料是否合法,比如客戶登入時,使用者名稱不能為空,或者不能超出指定長度等要求,這就叫做資料校驗。
資料校驗分為客戶端校驗和服務端校驗
客戶端校驗:js校驗
@RequestMapping("/dataTest8")
public void getParamsData8(User user){
System.out.println(user.getUserName()+"---"+user.getUserPwd()+"-"+user.getPhone().getNum());
}
表單頁面
~~~ java
<form action="dataTest8.do" method="post">
<input name="userName" value="123456" />
<input name="userPwd" value="4576" />
<input name="phone.num" value="4576" />
<button type="submit"> 提交</button>
</form>
擴充套件~什麼是資料校驗?
這個比較好理解,就是用來驗證客戶輸入的資料是否合法,比如客戶登入時,使用者名稱不能為空,或者不能超出指定長度等要求,這就叫做資料校驗。
資料校驗分為客戶端校驗和服務端校驗
客戶端校驗:js校驗
服務端校驗:springmvc使用validation校驗,struts2使用validation校驗。都有自己的一套校驗規則。