[SPRING] 봄, 요청 방법 'POST'가 지원되지 않음 [닫힘]
SPRING봄, 요청 방법 'POST'가 지원되지 않음 [닫힘]
우선이 질문을 반복하는 사과를하십시오.
사실 내 봄 응용 프로그램에서 나는 user.jsp 및 professional.jsp가있다.
여기 내 User.jsp가있다.
<form:form action="profile/user" modelAttribute="profile">
<div>
<jsp:include page="professional.jsp"></jsp:include>
</div>
</form:form>
그리고 여기 내 professional.jsp입니다 :
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<fieldset id="profile_proffiesional">
<form:form action="profile/proffiesional" modelAttribute="PROFESSIONAL" method="POST">
<p>
<label for="position">Position</label>
<form:input path="position" tabindex="4" />
</p>
<p>
<label for="location">Location</label>
<form:input path="location" tabindex="5" />
</p>
<p>
<label for="description">Description</label>
<form:input path="description" tabindex="5" />
</p>
<p>
<input type="submit" value="Add">
</p>
</form:form>
</fieldset>
그리고 여기 내 컨트롤러 클래스입니다 :
@Controller
@RequestMapping(value = "profile")
public class UserProfileController {
@Autowired
private UserService userService;
@Autowired
private SessionData sessionData;
@RequestMapping(value = "user", method = RequestMethod.GET)
public String user(Model model) throws Exception {
model.addAttribute("PROFESSIONAL", new UserProfessionalForm());
model.addAttribute("EDUCATIONAL", new UserEducationalForm());
model.addAttribute("AWARDS", new UserAwardsForm());
return "profile/user";
}
@RequestMapping(value = "proffessional", method = RequestMethod.POST)
public @ResponseBody
String forgotPassword(UserProfessionalForm professionalForm,
BindingResult result, Model model) {
UserProfileVO userProfileVO = new UserProfileVO();
userProfileVO.setUser(sessionData.getUser());
userService.saveUserProfile(userProfileVO);
model.addAttribute("professional", professionalForm);
return "Your Professional Details Updated";
}
}
문제는 우리가 professional.jsp에서 Add 버튼을 클릭했을 때 서버 콘솔에는 응답이없고 아래에 경고 메시지가 표시됩니다.
29 Mar, 2013 1:03:51 PM org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported
WARNING: Request method 'POST' not supported
왜이 경고가 오나요? 나는 이미 지정된 method = "POST"입니다.
도와주세요..
해결법
-
==============================
1.user.jsp :
user.jsp :
<form:form action="profile/proffesional" modelAttribute="PROFESSIONAL"> --- --- </form:form>
귀하의 컨트롤러 클래스 :
(의미 전체 메서드 이름으로 ... 내가 DB에 삽입 레코드라고 생각해.)
@RequestMapping(value = "proffessional", method = RequestMethod.POST) public @ResponseBody String proffessionalDetails( @ModelAttribute UserProfessionalForm professionalForm, BindingResult result, Model model) { UserProfileVO userProfileVO = new UserProfileVO(); userProfileVO.setUser(sessionData.getUser()); userService.saveUserProfile(userProfileVO); model.addAttribute("PROFESSIONAL", professionalForm); return "Your Professional Details Updated"; }
-
==============================
2.Jsp에서 :
Jsp에서 :
action="profile/proffiesional"
컨트롤러에서
@RequestMapping(value = "proffessional", method = RequestMethod.POST)
맞춤법 오류!
-
==============================
3.내 스프링 보안 xml 파일에서 csrf를 사용하도록 설정 했으므로 한 줄만 추가했습니다.
내 스프링 보안 xml 파일에서 csrf를 사용하도록 설정 했으므로 한 줄만 추가했습니다.
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
이 방법으로 모델 속성이있는 양식을 제출할 수있었습니다.
-
==============================
4.비밀번호 분실 메서드에서 UserProfessionalForm 전문 양식 매개 변수에 대한 @ModelAttribute 주석이 없습니다.
비밀번호 분실 메서드에서 UserProfessionalForm 전문 양식 매개 변수에 대한 @ModelAttribute 주석이 없습니다.
@RequestMapping(value = "proffessional", method = RequestMethod.POST) public @ResponseBody String forgotPassword(@ModelAttribute UserProfessionalForm professionalForm, BindingResult result, Model model) { UserProfileVO userProfileVO = new UserProfileVO(); userProfileVO.setUser(sessionData.getUser()); userService.saveUserProfile(userProfileVO); model.addAttribute("professional", professionalForm); return "Your Professional Details Updated"; }
-
==============================
5.이 시도
이 시도
@RequestMapping(value = "proffessional", method = RequestMethod.POST) public @ResponseBody String forgotPassword(@ModelAttribute("PROFESSIONAL") UserProfessionalForm professionalForm, BindingResult result, Model model) { UserProfileVO userProfileVO = new UserProfileVO(); userProfileVO.setUser(sessionData.getUser()); userService.saveUserProfile(userProfileVO); model.addAttribute("professional", professionalForm); return "Your Professional Details Updated"; }
-
==============================
6.정보에 대한 나는 action 속성을 제거하고 아약스 게시물을 호출 할 때이 오류가 발생했습니다. 비록 내 action 속성이이 action = "javascript : //;"처럼 보이지만
정보에 대한 나는 action 속성을 제거하고 아약스 게시물을 호출 할 때이 오류가 발생했습니다. 비록 내 action 속성이이 action = "javascript : //;"처럼 보이지만
나는 아약스 호출 및 양식 직렬화에서 그것을 가지고 생각하지만 폼에 더미 작업 특성을 다시 추가하고 작동했습니다.
from https://stackoverflow.com/questions/15699350/spring-request-method-post-not-supported by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 실제 웹 요청 이외의 요청 범위 Bean 사용 (0) | 2019.02.10 |
---|---|
[SPRING] 두 개의 항아리 사이의 Spring Boot 및 @ComponentScan (0) | 2019.02.10 |
[SPRING] AngularJS 오류 : fnPtr은 함수가 아닙니다. (0) | 2019.02.09 |
[SPRING] 다중 arg 메소드를 이용한 스프링 빈 초기화 (0) | 2019.02.09 |
[SPRING] Spring 빈 컨텍스트에서 객체의 배열 선언하기 (0) | 2019.02.09 |