いくつかのパラメーターを使用して、コントローラーに POST 要求を別のコントローラーに転送させようとしています。
@Controller
@RequestMapping("/register")
public class RegisterController {
//...
@RequestMapping(method=RequestMethod.POST)
public String processSubmit(@Valid Voter voter, BindingResult result, HttpServletRequest request) {
//...
request.setAttribute("firstName", voter.getFirstName());
request.setAttribute("lastName", voter.getLastName());
request.setAttribute("ssn", voter.getSsn());
logger.info("VoterID exists, returning redirect:/question/prepare");
return "forward:/question/get";
}
}
@Controller
@RequestMapping("/question")
public class QuestionController {
//...
@RequestMapping(value="/get", method=RequestMethod.GET)
public String prepareVoterBean(@RequestParam String firstName,
@RequestParam String lastName, @RequestParam String ssn, Model model) {
logger.info("QuestionController got GET REQUEST for " + firstName + lastName + ssn);
VoterBean bean = new VoterBean();
bean.setFirstName(firstName);
bean.setLastName(lastName);
bean.setSsn(ssn);
model.addAttribute("questions",bean);
return "questionPage";
}
}
processSubmit() から受け取ったパラメーターを使用して新しいモデルを作成するように QuestionController をコーディングしようとしています。問題は、processSubmit から:/question/get を返すと、リクエストが HTTP POST リクエストとして転送され、サーバーが HTTP ステータス 405 - "Request method 'POST' not supported. In order to build a new model QuestionController 内で、processSubmit() から HTTP GET リクエストを転送する必要があると思います。
Spring Web MVC フレームワークのドキュメントについて調査し、リダイレクト プレフィックスを使用して POST メソッドからの GET リクエストとしてリクエストを転送できることを読みましたが、リダイレクト プレフィックス (つまりreturn redirect:/question/get
) を試したところ、サーバーは HTTP 400 - The request sent byクライアントの構文が正しくありませんでした。私は何を間違っていますか?
前もって感謝します。