こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

struts:input type="text"とhtml:textの違いは?

はじめまして。
strutsのhtmlタグで質問があります。

Formの中にvalidateを実装しました。
画面にエラーメッセージを表示するまではうまくいきましたが、
遷移前に入力した値を保持し再度表示してくれません。
原因を調べてみると、
<input type="text" name="hoge">
ではなく、
<html:text property="hoge"/>
ならば値を保持してくれることがわかりました。

ここで質問なのですが、
(1)strutsでは、値の保持のため<html:text~>を使うのが妥当なのか?
(2)strutsで<input type="text"~>を使用する場合、どういう実装をすれば値をjspに渡せるのか?
(sessionに格納するのはなんとなくわかります。ですが、strutsの場合、ActionとFormだけで動作しますし、通常のsetAttribute("hoge","value");をどこで入れるのが適切なのかわかりませんでした。

初心者な問題で申し訳ありませんが、strutsをより理解したいため、お分かりになる方教えていただけないでしょうか?よろしくお願いします。

投稿日時 - 2007-08-31 09:20:26

QNo.3302476

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

Strutsは、オープンソースなんだから実際にどういう動きをしてるのか自分で追ってみたら?
それでも分からないようなら、どこがどう分からないのか詳しく説明してくれないと。
初心者だからって何でも教えてもらえると思ったら甘いですよ。

投稿日時 - 2007-09-03 10:05:23

お礼

Strutsのソース読んでみることにします。

投稿日時 - 2007-09-03 10:39:42

ANo.1

(1)妥当かどうかじゃなくて、strutsを使うならそう書かないと…見づらくないか?
(2)formのOnClickで関数呼び出しするようにして、その関数内でセッション設定すれば?

投稿日時 - 2007-08-31 09:55:22

お礼

phoenix343さん、こんにちは。さっそくの回答ありがとうございます。
(1)確かに見づらいですね。
<html:text~>の方が、簡潔でわかりやすいと思いました。

(2)質問の仕方が悪くてすみません。
strusの仕組みで、画面で入力された値がform側(サーバー側)まで行くことは確認しました。
それを再度、jspに送りたい場合、サーバー側で処理(setAttribute)しなければいけないのではないかと思いました。
通常のwebのシステムだとどこでsetするかわかるのですが、
strutsを使用した場合、かつ<input type="text"~>を使用した場合、どこでやればよいのかわかりませんでした。

strutsだと通常は<html:text~>で実装し、値をsessionにわざわざ格納したりしないもの、というお答えでしたらその旨教えてください。
(本来どうすべきか、もお聞きしたいと思っています)

投稿日時 - 2007-08-31 12:40:21