###前提・実現したいこと
現在Javaの勉強の一環で、eclipseにSpringを入れた環境で、会員の登録画面、登録確認、完了画面の遷移と、データベースへの登録を試みています。
ですが、入力画面から確認画面へのデータの遷移ができません。
セッションやModelAndViewも触ってみました。
HomeConroller.java(home.jspの呼び出し等)
↓←Input.java(thisなどの宣言)
home.jsp(複数フォーム)
↓
HomeConroller.java
↓
second.jsp(入力確認表示)
↓
DB登録&完了画面表示
と流れる予定です。
home.jspには入力フォームが記述されてあります。
###発生している問題・エラーメッセージ
HTTPステータス 405 - Request method 'GET' not supported The specified HTTP method is not allowed for the requested resource.
###該当のソースコード
import java.util.Locale;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
- Handles requests for the application home page.
/
@Controller
@RequestMapping("home")
public class HomeController {
/
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
private Input form;
public Input getForm() {
return form;
}
public void setForm(Input form) {
this.form = form;
}
/**
* Simply selects the home view to render by returning its name.
/
/
@RequestMapping(value = "home", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
/*
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); model.addAttribute("serverTime", formattedDate ); form = new Input(); model.addAttribute("message", "What's "); model.addAttribute("request", form); return "home"; }
*/
/* @Autowired
CustomerService customerService;
*/
@ModelAttribute
Input setUpForm() {
return new Input();
}
@RequestMapping(value = "home", method = RequestMethod.POST) String create(@Validated Input form, BindingResult result, Model model) { if (result.hasErrors()) { return list(model); } Customer customer = new Customer(); BeanUtils.copyProperties(form, customer);
// customerService.create(customer);
return "home";
}
private String list(Model model) { // TODO 自動生成されたメソッド・スタブ return null; } @RequestMapping(value = "second", method = RequestMethod.POST) public String home(Input form, Locale locale, Model model) { String str = "Hello!! " + form.getId(); model.addAttribute("message", str); model.addAttribute("request", form); return "second"; }
}
###試したこと
コメント機能で削除した部分も含め、いろいろ切り貼りしているためすでにどこがどれだかわからなくなりつつあります。
方法が多様にあるため、どれを使用して良いのかがわからず混ざってしまいました。
###補足情報(言語/FW/ツール等のバージョンなど)
言語:Java
使用環境:eclipse pleiades4.5 mars
追加:Spring
DB:postgresql
サーバー:Tomcat8