web 프로젝트 json 리턴 관련 질문입니다.
- 작성자 :
- 이*오
- 작성일 :
- 2018-07-19 16:27:10
- 조회수 :
- 2,982
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요.
이전에 친절한 답변 감사드립니다.
현재 egov web으로 프로젝트 생성하여 mybatis 로 변경만 한 상태입니다.
Requestparam과 resposnebody 를 이용해서 GET,POST 작업을 하는 api 를 만들려고 합니다. (jsp쪽은 전혀 사용하지 않습니다.)
현재 설정은 xx.do 로 호출하는 방식인데 xx.do가 아닌 xx로만 호출하도록 수정하고있습니다.
관련하여 web.xml 의 *.do를 / 로 바꾸어주었습니다.
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
또한 dispatcher-servlet.xml 의 UrlBasedViewResolver 를 주석 처리하였습니다.
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/egovframework/example/" p:suffix=".jsp"/>
이렇게 설정해놓고 localhost:8080/test?selectedId=abc 를 호출하면 error 페이지가 나옵니다.
로그에 특별한 에러는 발생하지 않았지만 의심가는 로그는 있습니다
InternalResourceView가 /abc를 찾으려고 하는 것 같습니다.
No mapping found for HTTP request with URI [/abc]
컨트롤러단은 아래와 같습니다.
@RequestMapping(value = "/test", method = RequestMethod.GET )
public String selectSampleList(@RequestParam("selectedId") String id) throws Exception {
return id;
}
@RequestMapping(value = "/map", method = RequestMethod.GET )
public HashMap<String,Object> getMap() throws Exception {
HashMap<String,Object> param = new HashMap<String,Object>();
param.put("id","Abc");
return param;
}
두가지 전부 호출은 되지만 리턴이 안됩니다.
테스트 요청은 postman과 웹페이지 두가지로 해보았습니다.
UrlBasedViewResolver 가 없으면 default 로 internalResourceResolver 가 작동하는 것 같은데 custom resolver를 만들어야 하는것인지
기존에 있는 다른 resolver 를 사용해서 해결할 수 있는 것인지 궁금합니다.
질문이 조금 길지만 확인 부탁 드립니다.
감사합니다.
설정파일과 로그파일 첨부하겠습니다.
이전에 친절한 답변 감사드립니다.
현재 egov web으로 프로젝트 생성하여 mybatis 로 변경만 한 상태입니다.
Requestparam과 resposnebody 를 이용해서 GET,POST 작업을 하는 api 를 만들려고 합니다. (jsp쪽은 전혀 사용하지 않습니다.)
현재 설정은 xx.do 로 호출하는 방식인데 xx.do가 아닌 xx로만 호출하도록 수정하고있습니다.
관련하여 web.xml 의 *.do를 / 로 바꾸어주었습니다.
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
또한 dispatcher-servlet.xml 의 UrlBasedViewResolver 를 주석 처리하였습니다.
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/egovframework/example/" p:suffix=".jsp"/>
이렇게 설정해놓고 localhost:8080/test?selectedId=abc 를 호출하면 error 페이지가 나옵니다.
로그에 특별한 에러는 발생하지 않았지만 의심가는 로그는 있습니다
InternalResourceView가 /abc를 찾으려고 하는 것 같습니다.
No mapping found for HTTP request with URI [/abc]
컨트롤러단은 아래와 같습니다.
@RequestMapping(value = "/test", method = RequestMethod.GET )
public String selectSampleList(@RequestParam("selectedId") String id) throws Exception {
return id;
}
@RequestMapping(value = "/map", method = RequestMethod.GET )
public HashMap<String,Object> getMap() throws Exception {
HashMap<String,Object> param = new HashMap<String,Object>();
param.put("id","Abc");
return param;
}
두가지 전부 호출은 되지만 리턴이 안됩니다.
테스트 요청은 postman과 웹페이지 두가지로 해보았습니다.
UrlBasedViewResolver 가 없으면 default 로 internalResourceResolver 가 작동하는 것 같은데 custom resolver를 만들어야 하는것인지
기존에 있는 다른 resolver 를 사용해서 해결할 수 있는 것인지 궁금합니다.
질문이 조금 길지만 확인 부탁 드립니다.
감사합니다.
설정파일과 로그파일 첨부하겠습니다.
A
안녕하세요.
전자정부 표준프레임워크센터입니다.
먼저, xx.do가 아닌 xx로만 호출하도록 수정하신다면
*.do를 /*로 바꾸셔야할 것 같습니다.
그리고, view가 필요합니다.
예를 들면,
json을 사용하실 경우 org.springframework.web.servlet.view.json.MappingJacksonJsonView나
xml로 받으실 경우에는 org.springframework.web.servlet.view.xml.MarshallingView가 필요합니다.
앞서 안내드린 예제인 ex-Restful의 springrest-servlet.xml을 참고하시길 바랍니다.
감사합니다.
전자정부 표준프레임워크센터입니다.
먼저, xx.do가 아닌 xx로만 호출하도록 수정하신다면
*.do를 /*로 바꾸셔야할 것 같습니다.
그리고, view가 필요합니다.
예를 들면,
json을 사용하실 경우 org.springframework.web.servlet.view.json.MappingJacksonJsonView나
xml로 받으실 경우에는 org.springframework.web.servlet.view.xml.MarshallingView가 필요합니다.
앞서 안내드린 예제인 ex-Restful의 springrest-servlet.xml을 참고하시길 바랍니다.
감사합니다.