Restful URL 호출할때 .json 확장자 없이 json을 response 하고 싶습니다.
- 작성자 :
- 정*창
- 작성일 :
- 2015-01-29 00:32:40
- 조회수 :
- 2,034
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
어제 맵핑 URI 못찾는 문제는 알려주셔서 해결됐는데 .json이 없이 view를 json형태로 보내려다 보니
잘 안되네요.
제가 해본건 messageConverters도 이용해봤는데 에러가 발생하더군요.
제 설정은 아래와 같습니다.
현재 /api/test.json 하면 json형태로 잘 뱉어 줍니다. .json 확장자 없이 하고 싶습니다.
지금 셋팅에 /api/test하고 Controller 에서 return "test"; 해서 test.jsp만드는 방법은 배제 해주셨으면 합니다.
조언부탁드립니다.
감사합니다.
dispatcher-servlet.xml
------------------------------------------------------
....
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="2"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/egovframework/example/" p:suffix=".jsp"/>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1">
<property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
<bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="prefixJson" value="false"/>
</bean>
</list>
</property>
</bean>
Controller 아래와 같습니다.
--------------------------------------------------------------
package egovframework.example.sample.web;
....
@RequestMapping(value="/api/{name}",method = RequestMethod.GET)
public String getAllTasks(@PathVariable String name, ModelMap model) {
SampleVO sv = new SampleVO();
sv.setId("1111");
sv.setName(name);
model.put("sample", sv);
return "";
}
어제 맵핑 URI 못찾는 문제는 알려주셔서 해결됐는데 .json이 없이 view를 json형태로 보내려다 보니
잘 안되네요.
제가 해본건 messageConverters도 이용해봤는데 에러가 발생하더군요.
제 설정은 아래와 같습니다.
현재 /api/test.json 하면 json형태로 잘 뱉어 줍니다. .json 확장자 없이 하고 싶습니다.
지금 셋팅에 /api/test하고 Controller 에서 return "test"; 해서 test.jsp만드는 방법은 배제 해주셨으면 합니다.
조언부탁드립니다.
감사합니다.
dispatcher-servlet.xml
------------------------------------------------------
....
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="2"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/egovframework/example/" p:suffix=".jsp"/>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1">
<property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
<bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="prefixJson" value="false"/>
</bean>
</list>
</property>
</bean>
Controller 아래와 같습니다.
--------------------------------------------------------------
package egovframework.example.sample.web;
....
@RequestMapping(value="/api/{name}",method = RequestMethod.GET)
public String getAllTasks(@PathVariable String name, ModelMap model) {
SampleVO sv = new SampleVO();
sv.setId("1111");
sv.setName(name);
model.put("sample", sv);
return "";
}
A
안녕하세요 표준프레임워크센터입니다.
view를 json형태로 보내는 방법은 여러가지가 있지만
MappingJacksonJsonView를 따로 선언해주셔서 view이름으로 지정해주는 방법을 추천해드립니다.
우선, jsonView를 아래와같이 지정해주시고
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"></bean>
controller에서 view호출 시, controller코드는
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//생략
return modelAndView;
와 같이 이용해주시변 되겠습니다.
감사합니다.
view를 json형태로 보내는 방법은 여러가지가 있지만
MappingJacksonJsonView를 따로 선언해주셔서 view이름으로 지정해주는 방법을 추천해드립니다.
우선, jsonView를 아래와같이 지정해주시고
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"></bean>
controller에서 view호출 시, controller코드는
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//생략
return modelAndView;
와 같이 이용해주시변 되겠습니다.
감사합니다.