문자열 직접 반환: 이 메서드는 반환된 문자열을 뷰 파서의 접두어 및 접미어와 연결한 후 점프합니다.
접두사가 있는 문자열을 반환합니다.
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; }
문자열 직접 반환: 웹의 기본 단계에서 클라이언트가 서버에 접근하여 문자열을 직접 다시 쓰고 응답 본문으로 반환하려면 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; }
json 형식의 문자열을 반환하려면 메서드에 @ResponseBody를 추가하세요. 구성이 더 까다롭고 구성 코드가 많기 때문에 위 구성 대신 mvc의 주석 드라이버를 사용할 수 있습니다.
SpringMVC의 다양한 구성요소 중 프로세서 매퍼, 프로세서 어댑터, 뷰 리졸버를 SpringMVC의 3대 구성요소라고 합니다.
<!--在spring-mvc.xml中配置mvc的注解驱动--> <mvc:annotation-driven/>
SpringMVC의 데이터 응답 방법
1) 페이지 점프
문자열 직접 반환
ModelAndView 객체를 통해 반환
2 ) 데이터 다시 쓰기
문자열 반환 직접
객체 또는 컬렉션 반환
위 내용은 Java SpringMVC 데이터 응답 예시 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!