テキストボックスで入力したデータを変数に入れてリンクで飛ばせる方法はある?

このQ&Aのポイント
  • Struts + JSPでDynaValidatorFormに格納した値を次画面に遷移する際に変数に入れる方法はある?
  • リンクで画面遷移する際にテキストボックスに入力された値を変数に取得する方法について教えてください。
  • html:formではなくhtml:linkを使用して値をもたせたい場合、良い方法はありますか?
回答を見る
  • ベストアンサー

テキストボックスで入力したデータを変数に入れてリンクで飛ばせる?

Struts + JSPで DynaValidatorFormに格納した値を <html:text property="id" size="10" maxlength="8" /> <html:text property="name" size="80" maxlength="50" /> こんな感じでhtml:textとかで取り出すと思いますが、 次画面に遷移する際、html:textにユーザーが入力した値を 変数に入れる方法ってないでしょうか? リンクで画面遷移するときに値をもたせたいので html:formではなく くhtml:link action="/hoge?<% id %>&<% name %>..." /> こんな感じでやりたいのです。 良い方法はあるでしょうか?

  • Java
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

質問の意味を間違えてたみたいです。 すみません。 JavaScriptでどうとでもなりそうですが。。。 たとえばこんな感じとか。。。 <html> <head> <script language="JavaScript"> function jump() { var id = document.form1.id.value; var name = document.form1.name.value; alert(id); alert(name); window.location.href="/hoge.do?id=" + id + "&name=" + name; } </script> </head> <body> <form name="form1"> <input type="text" name="id"/> <input type="text" name="name"/> </form> <a href="JavaScript:jump()">xxxxxxx</a> </body> </html> これがJSPで生成できればいいのではないかと。 参考になれば幸いです。

Rickson888
質問者

お礼

回答ありがとうございます。 なるほど!そうやればいけますね! 僕はJavaScriptでsubmitさせる方法しか出てきませんでした。 まだまだ修行が足りないようです。。。

その他の回答 (2)

回答No.2

こんにちわ。 参考URLで<html:link/>について勉強してみてください。 あとは<bean:define/>タグでdefineして使うのも1つの方法かもしれませんね。 <bean:define id="id" name="form_name" property="id"/> <a href="/hoge.do?id=<%=id%>&...">....</a> 更に<c:out value="${form_name.map.property_name}"/>も1つの方法。 <a href="/hoge.do?id=<c:out value="${form_name.map.id}"/>&...">....</a> 実際に試してないので動くかはわかりませんが、お試しあれ。

参考URL:
http://struts.wasureppoi.com/taglib/03_link_param.html
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

うーん ためしに遷移先のJSPで <%=request.getAttribute(id)%> idはリクエストのid で取れるか試してみてちょ。

Rickson888
質問者

お礼

回答ありがとうございます。 次画面でgetAttributeしてリクエストを受け取る事はできるんです。 ただ動的に変わるテキストボックスの中身は「?」ではどうにもならんのです。 html:form以外でなんとかならないもんかと無茶苦茶な事考えてます。(汗

関連するQ&A

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

  • テキストボックスのフォーカス移動

    こんにちは。 htmlページで<input type="text"/>に既定の桁数を入力したら次のinputにフォーカスを 移動させたいと考えています。 下の例の場合、1番目のテキストボックスに既定の桁数5ケタを入力したら、フォーカス を2番目のテキストボックスに移動させ、2番目のテキストボックスに4ケタ入力したら 3番目のテキストボックスにフォーカスを移動させるようにしたいと思っています。 スクリプトの再利用ができるよう、たとえば同じname属性を与えればその範囲内で 簡単にフォーカスを移動させられるようなものにしたいと思うのですが、うまくいきません。 何か良い書き方はありませんでしょうか? <div>  <input type="text" name="hoge" maxlength="5" onkeyup="test(this)"/>  <input type="text" name="hoge" maxlength="4" onkeyup="test(this)"/>  <input type="text" name="hoge" maxlength="5" onkeyup="test(this)"/>  <input type="text" name="hoge" maxlength="2" onkeyup="test(this)"/> </div>  ・  ・ <script type="text/javascript"> function test(elm) {  if (elm.value.length >= elm.maxLength) {   /*(気持ちとしては、ここにこのような感じのことを書きたいのですが・・・)     var arr_elm = document.getElementsByName(elm.name);     var n = elm.index + 1     arr_elm[n].focus();   */   } } </script>

  • テキストボックス値をsetPropertyでセット

    HTMLのテキストボックス<input type="text">値を JSPのsetPropertyでセットBeanのフィールドとしてセットし、 Servlet側で取得したいと思っています。 JSPでのsetPropertyの書き方は次のようで、 直接valueに値を書く(またはbeanからとってきた値を書くようですが、 [質問1.]テキストボックスに入力された値を代入することは可能でしょうか? [質問2.]どのように記述すればよろしいのでしょうか。 ---JSP setPropertyの記述 <jsp:setProperty name="オブジェクト変数"             property="プロパティ"             value="プロパティ値"             param="パラメータ" />

  • セレクトボックスの値による入力フォーム背景色の切り替え

    セレクトボックスで選択された値を見て、 text入力欄の背景色を変えたいのですが、 JavaScriptの書き方がよくわかりませんので 教えていただけないでしょうか。 ----------------------------------------- セレクトボックス(SELECT_AREA)の値選択時に onChengeで呼び出して テキスト入力欄(MEMBER_NAME)の色を変えたい。 <html:select property="SELECT_AREA"> <html:text property="MEMBER_NAME" size="100" maxlength="20" style="background:#FF0000" /> ----------------------------------------------- よろしくお願いします。

  • 入力に関して。

    以下のソースのようにテキストボックスを4つくらい並べて、最大入力文字数になったら、自動的に右のテキストボックスに入力できるようにすることはできるのでしょうか? <html> <head> <title></title> </head> <body> <form name="form1"> <input type="text" name="txt1" size="7" maxlength="3">. <input type="text" name="txt2" size="7" maxlength="3">. <input type="text" name="txt3" size="7" maxlength="3">. <input type="text" name="txt4" size="7" maxlength="3"> </form> </body> </html>

  • strutsのhtml:linkの使い方

    html:linkを使用してJSPを表示した際に、前のフォームのプロパティ値(ここではstaffNumberの値)を取得したいのですが,うまくいきません。 同じ処理をhtml:submitで実行すると取得できています。 その違いを教えて頂きたいのです。 以下がそのコードです。 【struts-config】 <form-bean dynamic="true" name= "loginForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name = "staffNumber" type= "java.lang.String" /> </form-bean> <action name="loginForm" path="/login" scope="request" type="login.action.LoginAction" validate="false"> <forward name="success" path="/login.jsp" /> </action> 【login.jsp】 <html:form action="/login">  <html:text property="staffNumber" size="10"maxlength="8"/> <html:link action="/login">testlink</html:link> <html:submit value="test"/> </html:form> 【LoginAction】 public class LoginAction extends Action{ public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception{ DynaValidatorForm loginForm =(DynaValidatorForm) form; String staffNumber=(String)loginForm.get("staffNumber"); System.out.println(staffNumber); return (mapping.findForward("success")); } } linkの処理で同じJSPを表示していますが,前のプロパティ値を取得しているかをログで確認する事を優先しているのでそのようにしています。 質問の意味がわからない、ソースの不足等ありましたら御指摘下さい。 宜しくお願いします。

    • ベストアンサー
    • Java
  • ボタンを押すとテキストボックスが増えるJavaScriptについて教えてください

    Javascriptで質問です。 <input type="text" name="hoge1" value=""> <input type="text" name="hoge2" value=""> <input type="text" name="hoge3" value=""> というようなテキストボックスがあり、「追加」というボタンを押すと 新たなテキストボックス <input type="text" name="hoge4" value=""> が追加されるようなJavascriptを作成したいと考えています。 新たに作られたテキストボックスには name="hoge4" name="hoge5" ・ ・ ・ というように、nameの部分に「hogeの右にある番号に1ずつ加算された名前」を付けていきたいのです。 検索すると、テキストボックスを追加していくだけのサンプルはいくつかあったのですが、nameの部分を加算していく、という例が無くて行き詰っています。 よろしくお願いいたします。

  • JSPでテキストボックスのループ作成についての質問

    JSPでテキストボックスのループ作成についての質問 いつもお世話になっております。 現在、strutsで開発を行っているのですが1日中困っています。 JSPでテキストボックスを作成してループで10個に増やす処理をしようとしています。 property=aaa1,property=aaa2・・・・ という名前を作ってsetter/getterに入れ、SQLを発行してDBに保存をしたいと思っています。 1行だけならDBに登録できているのですがループで登録をしようとするとエラーになってしまい、調べたり周りに聞いたりしたところ、テキストボックスを作成したときにpropertyが変化していないから2行目以降が登録できないのではと指摘を受け、下記の様なソースを作成しました。 <% for (int a=1;a<=100;a++){ %> <tr> //テキストボックスを作成 <td> <html:text name="aa" property="aaa<%=a%>" size="10" value=""/></td> <td> <html:text name="bb" property="bbb<%=a%>" size="10" value=""/></td> <% } %> //数値を文字列に変換 <%="int a = Integer.toString(a)" %>" 現在、property="aaa<%=a%>"がaaa1としたいのですがaを1と認識してくれていません。 大変恐縮ですが、property=aaa1,aaa2…と変化する方法を教えていただけないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • テキストボックスの表示

    よろしくお願いします。 早速ですが、テキストボックスにおいて、入力した値を POSTしても残すようにしていたのですが、突然できなくなりました。 何が原因と思われますか? php.iniの内容とか関係してきますでしょうか?? formのactionはPHP_SELFにして、 <input type=text name=hoge value=$hoge> にして -------------------------------------------------- $hoge=$_REQUEST["hoge"]; 以下処理を走らせてます。 今までは問題なかったのですが・・・・ よろしくお願いします

    • ベストアンサー
    • PHP
  • プルダウン Or コンボボックスを選択したら、テキストボックスを入力不可にさせる方法 

    フォーム制御として、JavaScriptを使用して、プルダウンよりある項目が選択されたと同時に、あるテキストボックスの入力を不可、またはmaxlengthを0にしたいのですが、思うように出来ません。 maxlengthをvalue等に変更させたら値は変更されたので、 関数としての動きは問題なさそうです。 どなたか、ご教授お願いいたします。 ※現在下記のソースは、list番号を指定していません。 <script language="JavaScript"> <!-- function MM_jumpMenu(){ parent.document.form1.text1.maxlength=0; } //--> </script> <form name="form1" method="post" action=""> <select name="menu1" onChange="MM_jumpMenu()"> <option selected>unnamed1</option> <option>unnamed2</option> </select> <input type="text" name="text1" maxlength="10"> </form>

専門家に質問してみよう