자바 에서@ModelAttribute 주석 역할

2148 단어 modelattribute주해
문제 설명:폼 전송 이 가치 가 있 을 때,name,address,age 를 정의 하면.등 속성,그러면 폼 을 통 해 전 달 된 값 은 이 세 개의 속성 밖 에 없 지만,우리 가 필요 로 하 는 name,pass,address,age 등 네 개의 속성 입 니 다.그러면 폼 을 제출 하고 값 을 부여 할 때 받 지 못 한 값 이 null 인 경우 가 발생 합 니 다.다음 그림:

가 져 온 pass 는 null 입 니 다.

그러면 우 리 는@ModelAttribute 주석 으로 그 를 해결 해 야 한다.
구현 코드 는 다음 과 같 습 니 다:

 @ModelAttribute
 public void getUsers(@RequestParam(value="name",required=false) String name,Map<String, Object> map){
  if(name!=null){
   System.out.println("  ModelAttribute");
   //            。
   User users = new User("cjh","123","[email protected]","China");
   System.out.println("           "+users);
   map.put("user",users);
  }
 }
 @RequestMapping("/getInfo")
 public String getServletAPI(User user){
  String viewName = "hello";
  System.out.println("  :"+user);
  return viewName;
 }
@ModelAttribute 주석 방법 은 이 컨트롤 러 에서 다른 어떤 방법 이 호출 되 더 라 도 실 행 됩 니 다.
상기 코드 의 실행 절 차 는 다음 과 같 습 니 다.
1.먼저@ModelAttribute 주해 수식 방법 을 실행 하고 데이터베이스 에서 수정 할 대상 을 찾 아 맵 키 쌍 에 값 을 넣 습 니 다.key 는 요청 을 처리 하 는 방법 으로 들 어 오 는 매개 변수 이름과 같 아야 합 니 다.예 를 들 어 여기 서 정 의 된 들 어 오 는 매개 변수 이름 이 user 이면 map.put("user",값(데이터베이스 에서 조회 하 는 대상)).이 맵 은 방법 이 참 여 된 곳 에 정의 해 야 합 니 다.
2.Spring MVC 는 Map 에서 user 대상 을 찾 아 폼 요청 매개 변 수 를 이 user 대상 에 게 할당 합 니 다.폼 이 정의 한 속성 만 교체 되 고 null 로 정의 되 지 않 으 며 변경 되 지 않 습 니 다.따라서@ModelAttribute 의 수식 방법 에 정 의 된 key 의 이름 은 컨트롤 러 방법(@RequestMapping()의 수식 방법)에 참 여 된 이름과 일치 해 야 합 니 다.그렇지 않 으 면 효과 가 없다.
3.Spring MVC 는 상기 대상 을 목표 방법의 매개 변수 에 전달 합 니 다.
메모:@ModelAttribute 수식 방법 에서 map 에 넣 을 때 키 는 대상 방법 에 들 어 가 는 매개 변수 이름과 일치 합 니 다.
최종 효과:

이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기