나는이 갈 줄 것이다. 여기
내가 내 Configuration
수업 시간에 무엇을 가지고 :
@Bean(name = "viewResolver")
public ContentNegotiatingViewResolver viewResolver() {
final ContentNegotiatingViewResolver contentNegotiatingViewResolver = new ContentNegotiatingViewResolver();
contentNegotiatingViewResolver.setOrder(1);
contentNegotiatingViewResolver.setFavorPathExtension(true);
contentNegotiatingViewResolver.setFavorParameter(true);
contentNegotiatingViewResolver.setIgnoreAcceptHeader(false);
final Map<String, String> mediaTypes = new HashMap<String, String>();
mediaTypes.put("json", "application/x-json");
mediaTypes.put("json", "text/json");
mediaTypes.put("json", "text/x-json");
mediaTypes.put("json", "application/json");
mediaTypes.put("xml", "text/xml");
mediaTypes.put("xml", "application/xml");
contentNegotiatingViewResolver.setMediaTypes(mediaTypes);
final List<View> defaultViews = new ArrayList<View>();
defaultViews.add(jsonView());
defaultViews.add(xmlView());
contentNegotiatingViewResolver.setDefaultViews(defaultViews);
return contentNegotiatingViewResolver;
}
@Bean(name = "xStreamMarshaller")
public XStreamMarshaller xStreamMarshaller() {
return new XStreamMarshaller();
}
@Bean(name = "xmlView")
public MarshallingView xmlView() {
final MarshallingView marshallingView = new MarshallingView(xStreamMarshaller());
marshallingView.setContentType("application/xml");
return marshallingView;
}
@Bean(name = "jsonView")
public MappingJacksonJsonView jsonView() {
return new MappingJacksonJsonView();
}
을 그리고 여기에 Controller
에가는 것입니다.
내 경험에서
@RequestMapping(value = { "/pets" }, method = RequestMethod.GET)
public String list(Model model) {
model.addAttribute("pets", petRepository.findAll());
return "pets/list";
}
@RequestMapping(value = { "/pets" }, method = RequestMethod.POST)
public String create(@Valid @RequestBody Pet pet, Model model) {
petRepository.save(pet);
return "redirect:pets/read/" + pet.getId();
}
@RequestMapping(value = { "/pets/{petId}" }, method = RequestMethod.GET)
public String read(@PathVariable Integer petId, Model model) {
model.addAttribute("pet", petRepository.findOne(petId));
return "pets/read";
}
@RequestMapping(value = { "/pets" }, method = RequestMethod.PUT)
public String update(@Valid @RequestBody Pet pet, Model model) {
petRepository.save(pet);
return "redirect:pets/read/" + pet.getId();
}
@RequestMapping(value = { "/pets/{orderId}" }, method = RequestMethod.DELETE)
public void delete(@PathVariable Integer petId, Model model) {
petRepository.delete(petId);
}
, 당신은 HTML 양식 또는 @RequestBody
같은 JSON 객체를 제출할 수 있습니다. 시도 해봐.
필자는 이와 같이 설정을 변경하려고 시도했지만 "HTTP 상태 415 - 요청 엔티티가 요청 된 메소드()에 대해 요청 된 리소스에서 지원되지 않는 형식이므로이 요청을 거부했습니다." @RequestBody 어노테이션을 제거하면 잘 작동합니다 (적어도 폼 포스트의 경우) – nfvindaloo
'@ RequestBody'를 제거하고 HTML 양식과 JSON 제출물이 작동하는지 확인하십시오. 나는 봄이 당신을 위해 그것을 처리 할 것이라고 생각합니다. 어느 쪽이든, 단지'String' Spring을 반환 할 때 view (acceptType이 HTML 인 경우)로 이동하거나'Model' 객체를 JSON으로 변환합니다. – sbzoom
고마워, 아프다! – nfvindaloo