• 締切済み

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をより理解したいため、お分かりになる方教えていただけないでしょうか?よろしくお願いします。

みんなの回答

noname#49428
noname#49428
回答No.2

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

pc070603
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.1

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

pc070603
質問者

お礼

phoenix343さん、こんにちは。さっそくの回答ありがとうございます。 (1)確かに見づらいですね。 <html:text~>の方が、簡潔でわかりやすいと思いました。 (2)質問の仕方が悪くてすみません。 strusの仕組みで、画面で入力された値がform側(サーバー側)まで行くことは確認しました。 それを再度、jspに送りたい場合、サーバー側で処理(setAttribute)しなければいけないのではないかと思いました。 通常のwebのシステムだとどこでsetするかわかるのですが、 strutsを使用した場合、かつ<input type="text"~>を使用した場合、どこでやればよいのかわかりませんでした。 strutsだと通常は<html:text~>で実装し、値をsessionにわざわざ格納したりしないもの、というお答えでしたらその旨教えてください。 (本来どうすべきか、もお聞きしたいと思っています)

すると、全ての回答が全文表示されます。

関連するQ&A