>Java >java지도 시간 >Java SpringMVC 데이터 응답 예시 분석

Java SpringMVC 데이터 응답 예시 분석

WBOY
WBOY앞으로
2023-05-21 12:16:06809검색

1) 페이지 점프

문자열 직접 반환: 이 메서드는 반환된 문자열을 뷰 파서의 접두어 및 접미어와 연결한 후 점프합니다.

Java SpringMVC 데이터 응답 예시 분석

접두사가 있는 문자열을 반환합니다.

Forward: 전달:/WEB-INF/views/index.jsp

Redirect: 리디렉션:/index.jsp

Return via ModelAndView object

@RequestMapping("/quick2")
public ModelAndView quickMethod2(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("redirect:index.jsp");
    return modelAndView;
}
@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    return modelAndView;
}

전달할 때, 데이터는 종종 요청 필드에 저장되고 jsp 페이지에 표시됩니다. 그러면 컨트롤러는 요청 필드에 데이터를 어떻게 저장합니까?

① SpringMVC 프레임워크에 의해 주입된 요청 객체의 setAttribute() 메소드를 통해 설정합니다.

@RequestMapping("/quick")
public String quickMethod(HttpServletRequest request){
    request.setAttribute("name","zhangsan");
    return "index";
}

② ModelAndView의 addObject() 메소드를 통해 설정합니다.

@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    modelAndView.addObject("name","lisi");
    return modelAndView;
}

2) 데이터 다시 쓰기

문자열 직접 반환: 웹의 기본 단계에서 클라이언트가 서버에 접근하여 문자열을 직접 다시 쓰고 응답 본문으로 반환하려면 response만 사용하면 됩니다. .getWriter().print(" hello world"), 컨트롤러에서 직접 문자열을 다시 쓰려면 어떻게 해야 할까요?

① response.getWriter().print("hello world")를 사용하여 SpringMVC 프레임워크에 의해 주입된 응답 개체를 통해 데이터를 다시 씁니다. 이때 뷰 점프는 필요하지 않으며 비즈니스 메서드의 반환 값은 다음과 같습니다. 무효의.

@RequestMapping("/quick4")
public void quickMethod4(HttpServletResponse response) throws IOException {
    response.getWriter().print("hello world");
}

② 다시 작성해야 할 문자열을 직접 반환하는데 이때 @ResponseBody 주석을 통해 SpringMVC 프레임워크에 알려야 합니다. 메서드에서 반환되는 문자열은 점프가 아니라 http 응답에서 직접 반환됩니다. 몸.

@RequestMapping("/quick5")
@ResponseBody
public String quickMethod5() throws IOException {
    return "hello springMVC!!!"; 
}

개발 중에는 복잡한 Java 개체를 json 형식 문자열로 변환해야 하는 경우가 많습니다. 변환하려면 웹 단계에서 배운 json 변환 도구를 사용할 수 있습니다.

1. pom.xml에서 jackson 좌표를 가져옵니다.

<!--jackson-->
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-core</artifactId>
 <version>2.9.0</version>
</dependency>
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-databind</artifactId>
 <version>2.9.0</version>
</dependency> 
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-annotations</artifactId>
 <version>2.9.0</version>
</dependency>

2. jackson을 통해 json 형식 문자열을 변환하고 해당 문자열을 다시 씁니다.

@RequestMapping("/quick7")
@ResponseBody
public String quickMethod7() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    ObjectMapper objectMapper = new ObjectMapper();
    String s = objectMapper.writeValueAsString(user);
    return s;
}

객체 또는 컬렉션 반환

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("/quick8")
@ResponseBody
public User quickMethod8() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    return user;
}

3) 주석 드라이버를 구성하세요

json 형식의 문자열을 반환하려면 메서드에 @ResponseBody를 추가하세요. 구성이 더 까다롭고 구성 코드가 많기 때문에 위 구성 대신 mvc의 주석 드라이버를 사용할 수 있습니다.

SpringMVC의 다양한 구성요소 중 프로세서 매퍼, 프로세서 어댑터, 뷰 리졸버를 SpringMVC의 3대 구성요소라고 합니다.

을 사용하여 Spring-xml.xml 구성 파일 에서 사용할 수 있는 RequestMappingHandlerMapping(처리 매퍼) 및 RequestMappingHandlerAdapter(처리 어댑터)를 자동으로 로드합니다. 주석 프로세서 및 어댑터 구성.

도 사용하세요. 기본적으로 기본 레이어는 jackson을 통합하여 객체 또는 컬렉션의 json 형식 문자열을 변환합니다.

<!--在spring-mvc.xml中配置mvc的注解驱动--> 
<mvc:annotation-driven/>

4) 지식 포인트

SpringMVC의 데이터 응답 방법

1) 페이지 점프

  • 문자열 직접 반환

  • ModelAndView 객체를 통해 반환

2 ) 데이터 다시 쓰기

  • 문자열 반환 직접

  • 객체 또는 컬렉션 반환

위 내용은 Java SpringMVC 데이터 응답 예시 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제