spring 학습 튜 토리 얼 의@ModelAttribute 주석 활용 상세 설명
4308 단어 spring주석@ModelAttribute
1.@ModelAttribute 주석 방법
예(1),(2),(3)와 유사 합 니 다.@ModelAttribute 에 의 해 설명 되 는 방법 은 이 contrller 의 모든 방법 이 실행 되 기 전에 실 행 됩 니 다.따라서 하나의 contrller 가 여러 URL 을 표시 하 는 용법 에 있어 서 는 신중하게 사용 해 야 합 니 다.
(1)@ModelAttribute 주석 void 반환 방법
@Controller
public class HelloWorldController {
@ModelAttribute
public void populateModel(@RequestParam String abc, Model model) {
model.addAttribute("attributeName", abc);
}
@RequestMapping(value = "/helloWorld")
public String helloWorld() {
return "helloWorld";
}
}
이 예 는 요청/hello World 를 받 은 후 populateModel 방법 은 hello World 방법 전에 호출 되 었 습 니 다.요청 인자(/hello World?abc=text)를 attributeName 이라는 model 속성 에 추가 하 였 습 니 다.실행 후 hello World 가 호출 되 었 습 니 다.보기 이름 인 hello World 와 model 은@Model Attribute 방법 으로 생산 되 었 습 니 다.이 예 에서 model 속성 이름과 model 속성 대상 은 model.addAttribute()가 실현 되 지만 전 제 는 방법 에 Model 형식의 인 자 를 추가 하 는 것 입 니 다.
URL 이나 post 에 다음 인자 가 포함 되 어 있 지 않 을 때 오류 가 발생 합 니 다.사실 이 방법 이 필요 하지 않 습 니 다.요청 한 방법 을 충분히 쓸 수 있 습 니 다.이 인자 가 없 으 면 오류 가 발생 하지 않 습 니 다.
@RequestMapping(value = "/helloWorld")
public String helloWorld(String abc) {
return "helloWorld";
}
(2)@ModelAttribute 주석 을 구체 적 인 클래스 로 되 돌려 주 는 방법
@ModelAttribute
public Account addAccount(@RequestParam String number) {
return accountManager.findAccount(number);
}
이 경우 model 속성의 이름 은 지정 되 지 않 았 습 니 다.이 방법 은 Account 형식 으로 되 돌아 가면 이 model 속성의 이름 은 account 입 니 다.이 예 에서 model 속성 이름 은 반환 대상 형식 에 포함 되 어 있 으 며,model 속성 대상 은 방법의 반환 값 입 니 다.그것 은 특정한 인 자 를 필요 로 하지 않 는 다.
(3)@ModelAttribute(value=")주석 을 구체 적 인 클래스 로 되 돌려 주 는 방법
@Controller
public class HelloWorldController {
@ModelAttribute("attributeName")
public String addAccount(@RequestParam String abc) {
return abc;
}
@RequestMapping(value = "/helloWorld")
public String helloWorld() {
return "helloWorld";
}
}
이 예 에서@ModelAttribute 주석 의 value 속성 을 사용 하여 model 속성의 이름 을 지정 합 니 다.model 속성 대상 은 방법의 반환 값 입 니 다.그것 은 특정한 인 자 를 필요 로 하지 않 는 다.(4)@ModelAttribute 와@RequestMapping 이 한 가지 방법 을 동시에 설명 합 니 다.
@Controller
public class HelloWorldController {
@RequestMapping(value = "/helloWorld.do")
@ModelAttribute("attributeName")
public String helloWorld() {
return "hi";
}
}
이 때 이 방법의 반환 값 은 보기 이름 을 나타 내 는 것 이 아니 라 model 속성의 값 입 니 다.보기 이름 은 RequestToViewNameTranslator 에서 요청 에 따라"/hello World.do"를 논리 보기 hello World 로 변환 합 니 다.Model 속성 이름 은@ModelAttribute(value=")로 지정 되 어 있 으 며,request 에 key=attributeName,value=hi 를 패키지 한 것 과 같 습 니 다.
2.@ModelAttribute 에서 한 방법의 매개 변 수 를 설명 합 니 다.
(1)model 에서 가 져 오기
@Controller
public class HelloWorldController {
@ModelAttribute("user")
public User addAccount() {
return new User("jz","123");
}
@RequestMapping(value = "/helloWorld")
public String helloWorld(@ModelAttribute("user") User user) {
user.setUserName("jizhou");
return "helloWorld";
}
}
이 예 에서@ModelAttribute("user") User user
주석 방법 매개 변 수 는 매개 변수 user 의 값 은addAccount()
방법 중의 model 속성 에서 기원 합 니 다.이때 방법 체 가 표시 되 지 않 았 다 면 scope 는 request 이 고 표시 되 었 다 면 scope 는 session 입 니 다.
(2)Form 폼 이나 URL 매개 변수 에서 가 져 오기(실제로 이 설명 을 하지 않 아 도 user 대상 을 가 져 올 수 있 음)
@Controller
public class HelloWorldController {
@RequestMapping(value = "/helloWorld")
public String helloWorld(@ModelAttribute User user) {
return "helloWorld";
}
}
이 럴 때 이 User 류 는 반드시 매개 변수 가 없 는 구조 함수 가 있어 야 합 니 다.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.