Movatterモバイル変換


[0]ホーム

URL:


酒と泪とRubyとRailsと

Spring Frameworkでのフォーム利用


JavaのSpring Frameworkでフォームを作ってviewに渡すまでのサンプルです。
ここではSpringとLombokを使う前提とします。

🎂Formオブジェクトの作成

まずはFormオブジェクトを作成します。

@Data
publicclassCommentForm{
@NotNull
@Size(min =1, max =127)
private String name;

@NotNull
@Size(min =1, max =1024)
private String comment;
}

🏀ControllerでFormを受け取る

FormクラスをControllerクラスで受け取ります。

@Controller
@RequestMapping("articles")
publicclassArticleController{
privatestaticfinal String VIEW_BASE ="articles/";

@ModelAttribute
public CommentFormsetUpCommentForm(){
returnnew CommentForm();
}

// GET /articles
@GetMapping("")
public Stringindex(Model model){
return VIEW_BASE +"index";
}

// GET /articles/create
@GetMapping("create")
public StringcreateForm(CommentForm form, Model model){
return VIEW_BASE +"createForm";
}

// POST /articles/create?confirm
@PostMapping(value ="create", params ="confirm")
public StringcreateConfirm(@Validated CommentForm form, BindingResult result, Model model){
if (result.hasErrors()) {
return createRedo(form, model);
}
return VIEW_BASE +"createConfirm";
}

// POST /articles/create?redo
@PostMapping(value ="create", params ="redo")
public StringcreateRedo(CommentForm form, Model model){
return VIEW_BASE +"createForm";
}

// POST /articles/create
@PostMapping(value ="create")
public Stringcreate(@Validated AbcForm form, BindingResult result, Model model, RedirectAttributes redirectAttributes){
if (result.hasErrors()) {
return createRedo(form, model);
}
// データの登録処理..

redirectAttributes.addFlashAttribute("message","新規レコードを作成しました")

return"redirect:/articles";
}

}

@ModelAttributeでRequestMappingのついたメソッドの実行前に、受け取りたいFormクラスを初期化して返します。返り値はリクエストスコープに設定され、Thymeleafなどのビューから参照できます。

🏈FormのボタンでPOST先のアクションを変える

Formの送信ボタンのnameオプションでPOST先のアクションを振り分ける方法を紹介します。

View側のHTMLはこちら。

<form>
<buttontype="submit"name="A">Aへ進むbutton>
<buttontype="submit"name="B">Bへ進むbutton>
form>

Controller側のコードはこちら。

@PostMapping(value ="/wizard", params ="A")
public StringwizardA(){
return"wizard_a";
}

@PostMapping(value ="/wizard", params ="B")
public StringwizardB(){
return"wizard_b";
}

👽参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍

概要はじめに基本概念初心者向け入門資料整数(int, log)文字(char)文字列(String)コレクションと配列マップ(Map)セット(Set)日付(Date)列挙(Enum)バイト(byte)正偽型(boolean)プリミティブ型と参照型Optional型文法修飾子クラスメソッド例外処理初期化ブロック変数インタフェースについてリフレクションswitch文Comparable I/Fアノテーションイテレータ(iterator)Stream API/LambdaSpring Framework概要Hello WorldDI(依存性の注入)アスペクト指向プログラミングデータバインディングと型変換Controllerアノテーションフォーム利用プロパティ(設定値)管理バリデーションライブラリThymeleaf(テンプレート)Lombok(ボイラープレート)Jackson(JSONライブラリ)MyBatis(OR Mapper)JUnit(ユニットテスト)HibernateデザインパターンファクトリパターンシングルトンパターンテンプレートメソッドパターンTipsJavaのBest PracticeJavaのコーディング規約IntelliJ IDEAノウハウJSPについてJava Tips

[8]ページ先頭

©2009-2025 Movatter.jp