home wiki.fukuchiharuki.me
Menu

Orca

初期表示する

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>

動的項目を表示する

セッションに保存する/セッションから取得する

ページ遷移する