SpringMVC 에서 Controller 류 데이터 응답 방법
1.방법 반환 값 종류
웹 단계 에서 우 리 는 데이터 응답 을 알 고 있 습 니 다.우 리 는 데이터 응답 을 간단하게 페이지 전환 과 재 작성 데이터 로 나 눌 수 있 습 니 다.
Controller 류 의 업무 반환 값 유형 은 매우 많 지만 결국은 페이지 전환 과 재 작성 데 이 터 를 완성 하 는 데 사 용 됩 니 다.우 리 는 자주 사용 하 는 몇 가지 반환 값 유형 을 알 아 보 자
ModelAndView, Model,ModelMap,Map,View, String, void ,@ResponseBody,HttpHeaders
2.페이지 이동SpringMVC 에서 페이지 전환 을 완성 하 는 방법 은 두 가지 가 있 습 니 다.문자열 을 직접 되 돌려 주 고 Model AndView 대상 을 되 돌려 줍 니 다.
2.1 문자열 을 직접 되 돌려 줍 니 다.
문자열 을 직접 되 돌 릴 때 자동 으로 보기 해석 기 를 통 해 물리 보기 주소 로 해 석 됩 니 다.
@RequestMapping("/user")
public class MyController {
// :localhost:8080/user/testReturnString
@RequestMapping("/testReturnString")
public String testReturnString() {
System.out.println("MyController testReturnString 。。。。");
return "success.jsp";
}
}
보기 가 user 폴 더 아래 에 있 지 않 을 때 클 라 이언 트 는 404 오 류 를 보고 합 니 다.이 보 기 를 찾 을 수 없 기 때 문 입 니 다.이 방식 은 보기 의 상대 주소 로 MyController 류 에 대한 요청 주소 이기 때문에 절대 주소 로 설정 할 수 있 습 니 다return "\success.jsp";
2.2 ModelAndView 대상 되 돌리 기Model AndView 대상 을 분해 할 수 있 습 니 다.Model 은 모델 이 데 이 터 를 밀봉 하 는 데 사용 되 고 View 는 보 기 를 보 여 주 는 데 사용 합 니 다.모델 앤 드 뷰 대상 의 방법:
Model AndView 대상 을 사용 하여 페이지 전환 완료:
@RequestMapping("test01")
public ModelAndView test01(){
// modelAndView
ModelAndView modelAndView =new ModelAndView();
//
modelAndView.setViewName("/user.jsp");
//
modelAndView.addObject("user","zhangsan");
return modelAndView;
}
Model AndView 대상 을 수 동 으로 만 들 지 않 고 직접 방법 에 형 삼 을 추가 할 수도 있 습 니 다.이런 방식 의 Model AndView 대상 은 실 삼 을 만 들 수 있 습 니 다.
@RequestMapping("test02")
public ModelAndView test02(ModelAndView modelAndView){
//
modelAndView.setViewName("/user");
//
modelAndView.addObject("user","lisi");
return modelAndView;
}
이 두 가지 방식 은 똑 같 습 니 다.모델 앤 드 뷰 대상 의 캐릭터 가 바 뀌 었 을 뿐 입 니 다.이런 두 가지 방식 을 제외 하고 우 리 는View
와Model
모델 앤 드 뷰 대상 을 분리 할 수 있 습 니 다.
@RequestMapping("test03")
public String test03(Model model){
model.addAttribute("user","wangwu");
return "user.jsp";
}
@RequestMapping("test04")
public String test04(ModelMap modelMap){
modelMap.addAttribute("user","zhaoliu");
return "user.jsp";
}
2.3 보기 접두사 와 접미사보 기 를 되 돌 릴 때 보기 이름 외 에 접두사 와 접미사 가 필요 합 니 다.접 두 사 는 보기 가 저장 하 는 경로 이 고 접 두 사 는 보기 형식 입 니 다.SpringMVC 는 내부 자원 보기 해석 기 를 설정 하여 접두사 와 접 두 사 를 추출 하여 SpringMVC 설정 파일 에서 설정 할 수 있 습 니 다.
<!-- -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
Controller 클래스 의 업무 방법 에 서 는 접두사 와 접 두 사 를 생략 할 수 있 습 니 다.SpringMVC 는 되 돌아 오 는 문자열 과 보기 해석 기의 앞 접 두 사 를 연결 한 후 이동 합 니 다.
@RequestMapping("test01")
public ModelAndView test01(){
// modelAndView
ModelAndView modelAndView =new ModelAndView();
//
modelAndView.setViewName("user");
//
modelAndView.addObject("user","zhangsan");
return modelAndView;
}
2.3 리 셋 과 리 트 윗4.567917.리 트 윗 요청:리 트 윗 요청 은 다른 주소 로 다시 전송 하 는 것 을 말 합 니 다.리 트 윗 과정 에서 같은 요청 을 사용 하고 리 트 윗 의 주소 표시 줄 내용 은 변 하지 않 습 니 다.무게
4.567917 방향:원 요청 주소 에서 새로운 주소 로 다시 찾 는 것 을 말 합 니 다.기 존의 요청 이 효력 을 잃 고 클 라 이언 트 가 본 것 은 새로운 요청 이 돌아 오 는 해당 결 과 를 말 합 니 다SpringMVC 에 서 는 기본적으로 리 트 윗 을 통 해 점프 를 완성 합 니 다.물론 리 셋 방향 으로 설정 할 수 있 습 니 다.
// user.jsp
@RequestMapping("test05")
public String test05(VO vo){
return "forward:user.jsp";
}
// user.jsp
@RequestMapping("test05")
public String test05(VO vo){
return "redirect:user.jsp";
}
메모:방법 이 값 을 되 돌려 주기 전에 forward:또는 redirect:를 추가 하면 SpringMVC 설정 파일 의 사용자 정의 보기 해석 기 가 잘못 되 었 습 니 다.return"forward:/main"은 맵 이름 이 main 인 contrller 로 전송 되 는 것 을 표시 하고 return"forward:/main.jsp"는 main.jsp 페이지 로 전송 되 는 것 을 표시 합 니 다.방법 상@RequestMapping 만 있 을 때 방법 반환 값 이 무엇이든 뛰 어야 합 니 다.
3.리 턴 데이터
데 이 터 를 다시 쓰 는 방법 도 두 가지 가 있 습 니 다.문자열 과 대상 을 직접 되 돌려 주거 나 집합 합 니 다.
3.1 직접 문자열 되 돌리 기
웹 기반 단계 에서 클 라 이언 트 가 서버 에 접근 합 니 다.응답 체 로 문자열 을 직접 되 돌려 쓰 려 면 response.getWriter().print("hello World")만 사용 하면 됩 니 다.따라서 저 희 는 SpringMVC 프레임 워 크 를 통 해 주 입 된 response 대상 입 니 다.이 때 는 보기 전환 이 필요 하지 않 습 니 다.업무 방법 반환 값 은 void 입 니 다.
@RequestMapping("test05")
public void test05(HttpServletResponse response) throws IOException {
response.getWriter().println("zhangsan");
}
이러한 방식 을 제외 하고@ResponseBody
주 해 를 통 해 SpringMVC 프레임 워 크 를 알 립 니 다.방법 으로 돌아 오 는 문자열 은 점프 가 아니 라 http 응답 체 에서 직접 돌아 갑 니 다.
@RequestMapping("test06")
@ResponseBody // SpringMVC ,
public String test06() throws IOException {
return "lisi";
}
실제 개발 에 서 는"lisi"라 는 형식의 문자열 을 직접 되 돌려 주지 않 습 니 다.일반적으로 json 형식 과 같은 일정한 형식의 문자열 을 되 돌려 줍 니 다.json 형식의 문자열 을 되 돌려 줄 때,우 리 는 Jackson 의 jar 패 키 지 를 추가 해서 xml 파일 에 추가 해 야 합 니 다.
<!--json jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.1</version>
</dependency>
@RequestMapping("test07")
@ResponseBody // SpringMVC ,
public String test07() throws IOException {
User user = new User();
user.setAge(18);
user.setUsername("zhangsan");
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(user);
return json;
}
3.2 복귀 대상 또는 집합SpringMVC 를 통 해 대상 이나 집합 에 대해 json 문자열 의 변환 과 재 작성 을 도 와 줍 니 다.프로세서 어댑터 에 메시지 변환 파 라 메 터 를 설정 하고 jackson 을 사용 하여 대상 이나 집합 변환 을 지정 하기 때문에 spring-mvc.xml 에서 다음 과 같은 설정 을 해 야 합 니 다.
<!-- -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</bean>
</list>
</property>
</bean>
메시지 변환 기 를 설정 한 후에 우 리 는 업무 방법 에서 수 동 으로 전환 할 필요 가 없습니다.
@RequestMapping("test08")
@ResponseBody // SpringMVC ,
public User test08() throws IOException {
User user = new User();
user.setAge(18);
user.setUsername("zhangsan");
return user;
}
상기 방법 에서 우 리 는 프로세서 맵 기 를 설정 하여 json 형식의 문자열 변환 을 완 성 했 습 니 다.그러나 이러한 설정 방식 은 비교적 번 거 롭 고 설정 코드 가 비교적 많 기 때문에 우 리 는 화면 음악 c 의 주해 구동 을 사용 하여 상기 설정 을 대체 할 수 있 습 니 다.
<!--mvc -->
<mvc:annotation-driven/>
여기 서 SpringMVC 의 데이터 응답 에 관 한 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringMVC 데이터 응답 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ssm 프레임워크 업로드 이미지 로컬 및 데이터베이스에 저장 예시본고는 ssm 프레임워크 업로드 이미지를 로컬과 데이터베이스에 저장하는 예시를 소개하고 주로 Spring+SpringMVC+MyBatis 프레임워크를 사용하여 ssm 프레임워크 업로드 이미지의 실례를 실현했다. 구체...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.