• 締切済み

hideenについて。

struts,javaを利用して、ウェブアプリケーションを練習しているのですがちょっと気になることがありましたのでご教授していただきたいと思い投稿しました。 例 <html:text property="abc" size="3" />とした時に propertyを保持したいと思い <html:text property="abc" size="3" /> <html:hidden property="abc" /> としたときにhtml:text property="abc"は保持されると思うのですが プログラム的にhtml:textとhtml:hiddenで同じ変数名を利用しているのですが、こういう書き方はNGになるのでしょうか。 表示されるのがHTMLなので、HTML的には同じソースコード内で 同じ変数が表示されるのはいいのかと気になりましたので ご教授いただければと思います。 よろしくお願いします。

みんなの回答

  • sh_hirose
  • ベストアンサー率66% (56/84)
回答No.1

同名のpropertyを指定してもかまいません。 (変数名というよりゲッター、セッターを実行するための標識みたいなものです。) ただし、Beanに設定されるのは片方だけです。 たしかセッターは宣言順に実行されるので、 まずhtml:textのabcがsetAbc()でセットされ、その後html:hiddenのabcがsetAbc()でセットされます。 つまり <html:text property="abc" size="3" value="1"/> <html:hidden property="abc" value="2"/> となっていた場合、Beanに残るのは「2」です。 開発環境にもよりますが、可能ならabcのセッターにブレークポイントを張ってみるとわかると思います。 補足 JSP <html:text property="abc" size="3"/> Bean public class Bean { private String xyz = ""; public void setAbc(String abc) { xyz = abc; } public void getAbc() { return xyz + xyz; } } これは正常に動作し、xyzにはhtml:textに入力した値が入ります。 よって、propertyに指定する値はBeanのゲッター、セッターを呼ぶためのものになります。

関連するQ&A