1.接收簡單引數,在Controller的方法後面新增相應的引數列表,Controller的引數列表要和view層傳的引數名一致。
2.接收物件引數,在Controller的方法後面新增相應的實體類,實體類的屬性名要和view層傳的引數名一致。
Controller類
package com.zhiyou100.kfs.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.zhiyou100.kfs.bean.User;
@Controller
@RequestMapping("/login")
public class LoginController {
@RequestMapping("/login.do")
public ModelAndView login(String username,String password) {//要和view層傳的引數名一致
ModelAndView mv=new ModelAndView("login");
if("張三".equals(username)&&"admin".equals(password)) {
}else {
mv.addObject("name", "出錯了!");
}
return mv;
@RequestMapping("/login1.do")
public ModelAndView login1(User user) {//實體類的屬性名對應要和view層傳的引數名一致
if("張三".equals(user.getUsername())&&"admin".equals(user.getPassword())) {
和jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
${name }
</body>
</html>
3.接收日期時間引數
a) 只能接受一個日期時間使用@initBinder在Controller:當接收的日期時間引數時會先經過該方法進行處理,但網頁傳的日期時間格式要和bider格式一樣。
需要在接收日期時間引數的Controller裡增加:
@InitBinder
public void initBinder(ServletRequestDataBinder binder){
//只要網頁中傳來的資料格式為yyyy-MM-dd 就會轉化為Date型別,
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
b) 能接受多個日期時間引數,在實體類對應屬性上使用@DateTimeFormart(pattern=”yyyy-MM-dd”)
4.接收物件中的物件的屬性值(包裝類:此處不是int等基本型別的包裝類,而是物件裡有個物件),例如User類裡有個person物件(Person類有age屬性,getter和setter)
a) 在頁面傳引數時name要是物件中的物件名點屬性名(person.age)
personAge:<input type="text" name="person.age"/>
b) 在controller層正常用user物件接就能接到了。
1.接收簡單引數,在Controller的方法後面新增相應的引數列表,Controller的引數列表要和view層傳的引數名一致。
2.接收物件引數,在Controller的方法後面新增相應的實體類,實體類的屬性名要和view層傳的引數名一致。
Controller類
package com.zhiyou100.kfs.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.zhiyou100.kfs.bean.User;
@Controller
@RequestMapping("/login")
public class LoginController {
@RequestMapping("/login.do")
public ModelAndView login(String username,String password) {//要和view層傳的引數名一致
ModelAndView mv=new ModelAndView("login");
if("張三".equals(username)&&"admin".equals(password)) {
}else {
mv.addObject("name", "出錯了!");
}
return mv;
}
@RequestMapping("/login1.do")
public ModelAndView login1(User user) {//實體類的屬性名對應要和view層傳的引數名一致
ModelAndView mv=new ModelAndView("login");
if("張三".equals(user.getUsername())&&"admin".equals(user.getPassword())) {
}else {
mv.addObject("name", "出錯了!");
}
return mv;
}
}
和jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
${name }
</body>
</html>
3.接收日期時間引數
a) 只能接受一個日期時間使用@initBinder在Controller:當接收的日期時間引數時會先經過該方法進行處理,但網頁傳的日期時間格式要和bider格式一樣。
需要在接收日期時間引數的Controller裡增加:
@InitBinder
public void initBinder(ServletRequestDataBinder binder){
//只要網頁中傳來的資料格式為yyyy-MM-dd 就會轉化為Date型別,
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}
b) 能接受多個日期時間引數,在實體類對應屬性上使用@DateTimeFormart(pattern=”yyyy-MM-dd”)
4.接收物件中的物件的屬性值(包裝類:此處不是int等基本型別的包裝類,而是物件裡有個物件),例如User類裡有個person物件(Person類有age屬性,getter和setter)
a) 在頁面傳引數時name要是物件中的物件名點屬性名(person.age)
personAge:<input type="text" name="person.age"/>
b) 在controller層正常用user物件接就能接到了。