// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。

#contents

**オブジェクトのフィールドの値を次の画面で使用したい [#v5dd99af]
 Foo foo = new Foo();
 foo.setBar("aaa");
 BeanUtil.copy(foo, request);
とすることでフィールドの内容をRequestスコープにコピー、すなわち
 request.setAttribute("bar",foo.getBar());
って事ができます。これでJSPでは ${f:h(bar)} でアクセス可能です。

たとえば○○一覧画面から一つを選択し、そこからコピー新規、みたいな画面を作るときに、遷移先の画面(○○入力画面)で
 <input type="text" name="bar"  value="${f:h(bar)}" />
ってかいておけば、テキストボックスにあらかじめ値が入った状態になります。
またたとえば、次に操作して登録画面へ遷移しようとして入力エラーとなってまた○○入力画面に戻ってきた場合も、その値が再現されますね。



** リクエストパラメータにアクセスする [#z5ef5ad4]
入力エラーなどで元画面に戻るようなケースで、テキストボックスに入力された値を遷移後の元画面で受け取りたいことがありますが、Slim3はリクエストパラメータ request.getParameter("hoge") の値を自動でrequest.setAttribute("hoge",[値]); してくれるようで、遷移先の元画面でもスッキリ値を取得することができます。これ便利です。
 ${f:h(textInput)}
は request.getAttribute("textInput"); と同等の意味ですが
 <input type="text" name="textInput"  value="${f:h(textInput)}" />
このようにアクセスして値を取得可能です。

たとえば
-index.jsp
 <form action="/index">
  <input type="text" name="textInput"  value="${f:h(textInput)}" />
  <input type="submit"  value="登録" />
  </form>
  textInput: ${f:h(textInput)} <br />

で
-IndexController
 public class IndexController extends Controller {
   @Override
   public Navigation run() throws Exception {
     return forward("index.jsp");
   }
などだった場合、textInput に「あ」と入れてみたところ、

 <form action="/index">
  <input type="text" name="textInput"  value="あ" />
  <input type="submit"  value="登録" />
 </form>
 textInput: あ <br />
となりました。

ちなみにControllerクラス内で
 request.removeAttribute("textInput");
とかしてみたら、${f:h(textInput)}としても値は取得できなかったので、${f:h(textInput)} ではリクエストパラメータの値は参照してないっぽいですね。




**オブジェクトのフィールドの値を次の画面で使用したい [#v5dd99af]
 Foo foo = new Foo();
 foo.setBar("aaa");
 BeanUtil.copy(foo, request);
とすることでフィールドの内容をRequestスコープにコピー、すなわち
 request.setAttribute("bar",foo.getBar());
って事ができます。これでJSPでは ${f:h(bar)} でアクセス可能です。

たとえば○○一覧画面から一つを選択し、そこからコピー新規、みたいな画面を作るときに、遷移先の画面(○○入力画面)で
 <input type="text" name="bar"  value="${f:h(bar)}" />
ってかいておけば、テキストボックスにあらかじめ値が入った状態になります。
またたとえば、次に操作して登録画面へ遷移しようとして入力エラーとなってまた○○入力画面に戻ってきた場合も、その値が再現されますね。






**関連リンク [#p82f3f62]
-[[slim3で標準時を日本にする &#171; kfactory>http://www.kfactory.net/?p=1905]]
-[[TimeZoneを扱う - やさしいデスマーチ>http://d.hatena.ne.jp/shuji_w6e/20110326/1301126280]]
-[[【入門編】Slim3で始める!GAE/Jでクラウド・アプリケーション開発(第2回) 5/5ページ - シアトルコンサルティング株式会社>http://www.seattleconsulting.co.jp/gae/slim3_dev_for_beginner_10.html]]





----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS