初期表示する†
Orcaでは1ページ=1クラス+1JSPです。セットアップは次のようにページクラスを記述しました。
- HomePage.java
public class HomePage implements Serializable { private static final long serialVersionUID = 1L; @Index public PageTransition index() { return new PageTransition().showJsp("/WEB-INF/jsp/HomePage.jsp"); } }
Orcaではページの初期表示時にアノテーション「@Index」のついたメソッドをコールする決まりです。このメソッドは引数がなく、戻り値がPageTransition型のインスタンスである必要があります。
フォームをサブミットする†
次のようにページ出力をしたとしましょう。
- HomePage.jsp
<form method="post" action="#"> <input type="submit" name="action" value="フォーム送信"> </form>
ここで「フォーム送信」ボタンをクリックしたときのリクエストは次のようにして受け取ることができます。
- HomePage.java
public class HomePage implements Serializable { private static final long serialVersionUID = 1L; ・・・ @Action public PageTransition action() { return new PageTransition().showJsp("/WEB-INF/jsp/HomePage.jsp"); } }
Orcaではフォームサブミット時にアノテーション「@Action」のついたメソッドをコールする決まりです。このメソッドは(初期表示のメソッドと同じく)引数がなく、戻り値がPageTransition型のインスタンスである必要があります。また、メソッド名はinput[type="submit"]のname属性と同じである必要があります。
上記について別の言い方をすれば、同一のフォームでも複数のサブミットボタンから別々のメソッドを呼び出すことができます。サブミットボタンのname属性とメソッド名を合わせることで任意のメソッドを呼び出すことができます。
パラメータを受け取る†
引き続き次のようなページ出力をしたとしましょう。 次のようにページ出力をしたとしましょう。
- HomePage.jsp
<form method="post" action="#"> <input type="text" name="id" value="${boundary.id}"> <input type="text" name="password" value="${boundary.password}"> <input type="submit" name="action" value="フォーム送信"> </form>