- PR -

strutsとAタグ

投稿者投稿内容
かつ
会議室デビュー日: 2004/07/26
投稿数: 5
投稿日時: 2004-07-26 18:21
日記帳(のような)アプリを作っています。

一覧画面と詳細入力画面で構成されます。
一覧の各行はリンクになっていて、選択すると詳細入力画面を表示します。
で、詳細入力画面から登録ボタンで一覧に戻る時、
アンカーを使って該当する詳細行をページ先頭に表示したいと思っています。

しょうもない質問のような気がしますが具体的なやり方がわかりません。
情報をいただけないでしょうか。よろしくお願いします。

構成:
 一覧.jsp
 一覧.java
 一覧フォーム.java
 詳細.jsp
 詳細.java
 詳細フォーム.java

詳細.jspの登録ボタンで詳細.javaの return mapping.findForward("listInit");
が実行されます。
で、struts-configのactionforwardにはlistInit→一覧.doを記述してます。

listInit1〜listInit31まで作るとか考えたんですが、なんかスマートではないので…
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2004-07-26 18:53
各画面の入出力仕様がよくわからないってことですか?

でしたら,各サイトで配布されている日記帳のCGIプログラム等を参考にして考えてみてはいかがでしょうか。
こういった掲示板で,すんなり回答できるような量ではないと思いますよ。

_________________
Kan Ogawa
k-ogawa@users.sourceforge.jp
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2004-07-26 18:56
仕様が掴めているか不安なのですが↓こんな感じですか?


[画面1]

例:日付の一覧画面

+------------+
| 2004-07-01 |
| 2004-07-02 |
| 2004-07-03 |
| 2004-07-04 |
~
~
+------------+


[画面2]

例:選択された日付の日記入力欄

+-------------+
| [日記フォーム] |
| [登録]     |
+-------------+

で、もし画面1で 2004-07-03 を選択して、内容を入力し登録が終わったら
また画面1に戻って、↓みたいに表示したいという事でしょうか?

+------------+
| 2004-07-03 |
| 2004-07-04 |
~
~
+------------+

この時のURLは "http://hogehoge/foo.do#2004-07-03" といった感じですかね。

--
とてもズレたので修正・・・。

[ メッセージ編集済み 編集者: でくのぼう 編集日時 2004-07-26 18:58 ]

[ メッセージ編集済み 編集者: でくのぼう 編集日時 2004-07-26 19:00 ]
かつ
会議室デビュー日: 2004/07/26
投稿数: 5
投稿日時: 2004-07-26 19:01
SuperCreekさん
ありがとうございます。質問の書き方が分かりづらくて申し訳ありません。
知りたいのは
>アンカーを使って該当する詳細行をページ先頭に表示したいと思っています。
の一点だけです。

struts-configに
<forward name="listInit" path="/一覧.do#(日付)" />
とか書いて(日付)の部分だけ動的に変えるようなことができるのかとか…
(これは無理だろう思っていますが)

[ メッセージ編集済み 編集者: かつ 編集日時 2004-07-26 19:02 ]
かつ
会議室デビュー日: 2004/07/26
投稿数: 5
投稿日時: 2004-07-26 19:07
でくのぼうさん
ありがとうございます。
やりたいのはまさにそういう動作です。

詳細を登録した時に実行される
return mapping.findForward("listInit");
に(日付)を含めたいんですが…

(というアプローチにこだわってはいません。すっきりしたやり方があれば何でも)
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2004-07-26 19:13
POSTを行った結果画面で、アンカーが指定されているというのが
個人的にあまり気持ち良くないもので、若干回り道する事を
お勧めしたいと思います。

つまり、POSTの後で表示する画面では「登録に成功しました」といったような
結果を出力させて、そこに「一覧に戻る」リンクを貼ってやるのが一番楽かなと。
もしくは、Struts から若干はみ出してしまいますが、リダイレクトさせる方法もありますね。
かつ
会議室デビュー日: 2004/07/26
投稿数: 5
投稿日時: 2004-07-26 19:39
ありがとうございます。

>つまり、POSTの後で表示する画面では「登録に成功しました」といったような
>結果を出力させて、そこに「一覧に戻る」リンクを貼ってやるのが一番楽かなと。
1クッション入ると要求仕様から外れてしまうのでできれば他のやり方をしたいと思います

>もしくは、Struts から若干はみ出してしまいますが、リダイレクトさせる方法もあり
>ますね。
えっと、これはjspに
<META HTTP-EQUIV="refresh" CONTENT="0;URL='一覧.do#<%=日付%>'">
というような記述をしておくってことでしょうか??
違っていたらすみません。が、これはいけそうな気がします。
(実質的には上と同じですかね…)

>POSTを行った結果画面で、アンカーが指定されているというのが
確かに気持ち悪い感じはありますが、できることはできるんでしょうか?
struts-configの書き方でなんとかなるものなんでしょうか?

いずれにしても時間をとって回答して下さりありがとうございます。
検討してみますm(__)m

[ メッセージ編集済み 編集者: かつ 編集日時 2004-07-26 20:03 ]
でくのぼう
大ベテラン
会議室デビュー日: 2003/10/06
投稿数: 162
投稿日時: 2004-07-26 21:03
引用:

1クッション入ると要求仕様から外れてしまうのでできれば他のやり方をしたいと思います



なるほど、仕様から外れてしまってはいけませんね。


引用:

<META HTTP-EQUIV="refresh" CONTENT="0;URL='一覧.do#<%=日付%>'">
というような記述をしておくってことでしょうか??
違っていたらすみません。が、これはいけそうな気がします。
(実質的には上と同じですかね…)



いえ、これはリダイレクトではありません。
res.sendRedirect() などを使います。
引数に渡す文字列にアンカーを含めてしまえば良いです。

また、これに渡すパスなどは findForward() で得た listInit の
ActionForward の getPath() メソッドで取得できるかと思います。


引用:

確かに気持ち悪い感じはありますが、できることはできるんでしょうか?
struts-configの書き方でなんとかなるものなんでしょうか?



私は試した事が無いのでなんとも。
簡単に実験できそうですから、やってみると良いかも知れませんよ。
ただ、駄目なんじゃないかという気がします・・・。


引用:

いずれにしても時間をとって回答して下さりありがとうございます。
検討してみますm(__)m



いえいえ、どういたしまして。
頑張ってください。

スキルアップ/キャリアアップ(JOB@IT)