ネットが遅くてイライラしてない!?

jspを勉強しています。
変数に代入した値をhiddenを使い飛ばしたいのですが、
うまくいきません。

String keyID = "123456";
<input type="hidden" name="S_id" value="keyID" />

例えばこのような形で変数keyIDに値を代入して、hiddenで飛ばして
飛び先のjspで変数keyIDの値を取得したいのです。
どなたかアドバイスいただけるとありがたいです。

A 回答 (3件)

ANo.2さんの回答内容で試してみた結果、どのようにうまくいかなかったのでしょうか?



もう一つ気になるのが、
送信側の名前(sid)と受信側の名前(S_id)が違うような気がしますが、単なる記述ミスでしょうか?

JavaScriptはあまり関係なさそうですね。
    • good
    • 0
この回答へのお礼

はじめましてYohjiraさん、
logger_manさんのアドバイスで何とかうまくいきました。
getPalameterの受け方にも問題があったようでした、
今は思うように動いています。
どうもありがとうございました。

お礼日時:2008/08/28 21:23

変数keyIDの値を<hidden>のvalueに書き出させたいなら、



value="keyID"

value="<%= keyID %>"

こうだな。変数名だけ書いても、ただkeyIDという文字が設定されるだけ。変数の値が必要なら、JSPのタグで値を書き出さないとダメ。

この回答への補足

はじめまして、logger_manさん。
頂いたアドバイスのように下のように変えたのですが、
うまくいきませんでした。
宣言のところ少し詳しく書きました。
<%! String keyID = "123456"; %>
<input type="hidden" name="sid" value="<%=keyid%>">

<%
String E_id = request.getParameter("S_id");
%>
ちなみに受ける側はこんな感じで受けています。
どうぞよろしくお願いします。

補足日時:2008/08/26 00:56
    • good
    • 6
この回答へのお礼

logger_manにいただいたアドバイスのおかげで、何とか問題クリアできました。
どうもありがとうございました。

お礼日時:2008/08/28 21:19

JSPの質問なら、ここはJavaScriptのカテゴリなのでJavaの方に


移動してください。
もし、JavaScriptでJSPにデータを渡したい(Ajaxなど)という場合なら
ここでいいのですが。

うまくいかないというのはどううまくいかないのか書いた方がより
明確な回答が得られると思います。
Javaに関しては分からないので他の人に譲りますが単純に環境変数か
標準入力からの取得を間違えているだけだと予測しますけど。
(多分、変数名が違うとか)

この回答への補足

はじめましてpick52さん。
大変失礼しました。
JavaScriptを使ってデータを飛ばしたいといった事を質問したかったので、なれないものですいませんです。
質問内容のアドバイスもためになりました、ありがとうございます。

補足日時:2008/08/26 00:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qhiddenの値が期待した値で取得されないのです

いつもお世話になっております。

for文の中で、押されたボタンのデータをhiddenで送信しようとしているのですが、
うまくいきません。
ソースは下記になります。

aaa.jsp
<%
for(int i = 0;i < list.size(); i++) {
caModel = (CategoryModel)list.get(i);
int i1 = caModel.getCategory();
int i2 = caModel.getCategory_sub();
String s1 = caModel.getCategory_name();
%>
<html:submit property="submit"><%=s1%></html:submit>
<%=i1%>,<%=i2%>
<input type="hidden" name="category" value="<%=i1%>">
<input type="hidden" name="category_sub" value="<%=i2%>">
<% } %>

途中でi1とi2を表示しているのですが、期待している通りに表示されます。[1,1]と[1,2]が表示。

これをservletで取得すると、
bbb.java
String st1 = request.getParameter("category");
String st2 = request.getParameter("category_sub");
System.out.println("st1 = " + st1);
System.out.println("st2 = " + st2);

2つ目のボタンを押して[1,2]を送信したいのですが[1,1]が表示されてしまいます。

分かる方がいましたら、ご教授下さい。よろしくお願い致します。

いつもお世話になっております。

for文の中で、押されたボタンのデータをhiddenで送信しようとしているのですが、
うまくいきません。
ソースは下記になります。

aaa.jsp
<%
for(int i = 0;i < list.size(); i++) {
caModel = (CategoryModel)list.get(i);
int i1 = caModel.getCategory();
int i2 = caModel.getCategory_sub();
String s1 = caModel.getCategory_name();
%>
<html:submit property="submit"><%=s1%></html:submit>
<%=i1%>,<%=i2%>
<input type="hidden" name="category" valu...続きを読む

Aベストアンサー

ループ内にformを記述してみてはどうですか。

QJSPでリンクを利用してパラメータを次画面に渡す方法について。

一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。

データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。
リンク部分のソースは

---------------------------------------------------------------------
<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a>
<input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>">
---------------------------------------------------------------------

としておりますが、次画面へ遷移すると、ID_Bの値はnullとなってしまうために、正常にデータの取得ができません。

二つのパラメータを使用する場合のパラメータを渡す方法を教えて頂きたいと思います。よろしくお願いします。

一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。

データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。
リンク部分のソースは

---------------------------------------------------------------------
<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a>
<input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>">...続きを読む

Aベストアンサー

<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>&ID_B=<%= rs.getString("ID_Bcat_id") %>">番号</a>

としてID_Bを&で繋げればMethod="get"で送れますね。
inputタグで送る場合はformタグでactionアトリビュートに飛ぶjspを指定してsubmitボタンかJavaScriptでsubmitさせなければならないと思います。

QServlet-JSP間のhidden要素での値受け渡し

Servletをはじめて間もない初心者です.
説明がわかりづらいかも知れませんがご容赦ください.
Servlet-JSP間の値の受け渡しについての質問です.

Servlet1-----page1.jsp
 |      |__beans1.java
 |
Servlet2-----page2.jsp
       |__beans2.java

という2つのページがあるとします.
page1.jspからpage2.jspを開く時に

page1.jsp → Servlet2 → page2.jsp(編集モード)
              → page2.jsp(登録モード)

の何れかのモードでpage2.jspを開きたいと考えています.
page1.jspの中に
<input type="hidden" name="PageState">
というhidden要素を定義してServlet2にフラグを渡せば解決できると思うのですが,hidden要素はセキュリティ上使用しない方が良い?という記述を読んだことがあるので,この方法でよいのか悩んでおります.
 何かご意見や別の方法がありましたらアドバイスお願いいたします.

Servletをはじめて間もない初心者です.
説明がわかりづらいかも知れませんがご容赦ください.
Servlet-JSP間の値の受け渡しについての質問です.

Servlet1-----page1.jsp
 |      |__beans1.java
 |
Servlet2-----page2.jsp
       |__beans2.java

という2つのページがあるとします.
page1.jspからpage2.jspを開く時に

page1.jsp → Servlet2 → page2.jsp(編集モード)
              → page2.jsp(登録モード)

の何れかのモードでpage2.jspを開きたいと考えてい...続きを読む

Aベストアンサー

コードを見せていただきました。
結論として、JavaScriptの使用(BtPage関数)自体が無駄ですね。FORMのsubmitやHREFのクリックにより、それぞれ適切なURLがリクエストされれば、それで十分です。もちろん、パラメータ値付きのURLでもかまいません。

QJSPによる画面間のパラメータの受け渡しについて

JSPで、データが一覧表示されたフォームから、個々のデータの修正を行うプログラムを作成しています。そこで、一覧表示画面から、選択したデータの修正用の画面に遷移する際、パラメータが渡らずに、NULLでエラーとなってしまいます。
一覧表示部分のソースは以下のようになっています。
-------------------------------------
<TABLE CLASS = "noborder" width = "70%">
・・・
<%
while (rs.next()){
%>

<TR>
<TD>
<a href = "dai_update.jsp?cat_id=" + cat_id>修正</a>
<input type="hidden" name = "cat_id" value = "<%= ("cat_id") %>">
</TD>
<%
}
%>

</TABLE>
-------------------------------------
修正フォームのパラメータの受け取り部分のソースは以下のようになっています。
-------------------------------------
<%
Statement stmt = conn.createStatement();
String sql = "select cat_id, cat_name from quest_cat " +
"where cat_id ="+ request.getParameter("cat_id");
ResultSet rs = stmt.executeQuery(sql);

%>
-------------------------------------
お知恵を拝借できればと思います。よろしくお願いします。

JSPで、データが一覧表示されたフォームから、個々のデータの修正を行うプログラムを作成しています。そこで、一覧表示画面から、選択したデータの修正用の画面に遷移する際、パラメータが渡らずに、NULLでエラーとなってしまいます。
一覧表示部分のソースは以下のようになっています。
-------------------------------------
<TABLE CLASS = "noborder" width = "70%">
・・・
<%
while (rs.next()){
%>

<TR>
<TD>
<a href = "dai_update.jsp?cat_id=" + ...続きを読む

Aベストアンサー

ぱっと見て動かないことはないと思うのですが、
どうやって「パラメータが渡らずに、NULLでエラーとなってしまいます。」
と判断したのでしょう?

request.getParameter("cat_id");

で取得される値が本当にnullになっているのでしょうか?
それとは無関係にDB接続などでエラーになっているのではないですよね。
エラーの内容を表示してくれますか?

それと、気になるのは修正画面に遷移するときには、
<a href = "dai_update.jsp?cat_id=" + cat_id>修正</a>
のリンクをクリックするのですよね?

たぶん省略しているのだと思いますが、cat_idには値をセットしていますか?
もうひとつ、
<input type="hidden" name = "cat_id" value = "<%= ("cat_id") %>">
このhidden部分はなにに使われるんでしょうか?
リンクをクリックするのでしたら、hiddenは使用されないし、
そもそも固定で"cat_id"という文字列が入ると思うのですが。

一覧表示画面をブラウザで表示したときに、ブラウザの機能で、
「ソースを表示」を使って、自分の意図したHTML出力になっているか
確認してみるといいですよ。

ぱっと見て動かないことはないと思うのですが、
どうやって「パラメータが渡らずに、NULLでエラーとなってしまいます。」
と判断したのでしょう?

request.getParameter("cat_id");

で取得される値が本当にnullになっているのでしょうか?
それとは無関係にDB接続などでエラーになっているのではないですよね。
エラーの内容を表示してくれますか?

それと、気になるのは修正画面に遷移するときには、
<a href = "dai_update.jsp?cat_id=" + cat_id>修正</a>
のリンクをクリックするのですよね?
...続きを読む

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

QJSPからJSPへ情報を渡せる?

JAVA言語 JSPからの質問がございます。

JSPからJSPへと飛ばすときに、例えば

 a.jspがありそのjspには変数Aと変数Bと変数Cがあります。
リンクをおした時点で条件をつけてA==4
なら、b.jspへ飛びその際変数Bをb.jspにわたす。
 もしノットイコールならc.jspへ飛び、その際変数Cをc.jspにわたす。

なんていうことができるのでしょうか?
もしできるようでしたら、お手数ですが例を打っていただけませんでしょうか?宜しくお願いいたします。

Aベストアンサー

こんにちわ。
仰っているのは、Aの値に応じてリンク先が変わり、且つ、値を遷移先のJSPに渡したいということですよね?

でしたら遷移先については、
<% if (A == 4) { %>
<a href="b.jsp">リンク</a>
<% } else { %>
<a href="c.jsp">リンク</a>
<% } %>
のようにAの値によってリンク先を変更して表示すれば良いと思われます。

あとは、値の渡し方ですが、方法は複数あるように思います。
一つは、セッションを使う方法。もう一つはURLにパラメータとしてつける方法。他にもあるかもしれません。

前者はセッションスコープに値を設定するのが一般的と思われます。
request.getSession().setAttribute("B", "Bの値");
で格納し、遷移先のJSPで
request.getSession().getAttribute("B");
で取り出せます。

後者は、aタグのhrefに「b.jsp?B=3」とかにして、
request.getParameter("B");
で取り出せると思います。

「java セッション」とかで検索するとセッションに入れたオブジェクトの有効範囲(スコープ)などを解説してくれているサイトが見つかるはずです。

参考になれば幸いです。

こんにちわ。
仰っているのは、Aの値に応じてリンク先が変わり、且つ、値を遷移先のJSPに渡したいということですよね?

でしたら遷移先については、
<% if (A == 4) { %>
<a href="b.jsp">リンク</a>
<% } else { %>
<a href="c.jsp">リンク</a>
<% } %>
のようにAの値によってリンク先を変更して表示すれば良いと思われます。

あとは、値の渡し方ですが、方法は複数あるように思います。
一つは、セッションを使う方法。もう一つはURLにパラメータとしてつける方法。他にもあるかもしれません。

...続きを読む

Qフォーム上で押されたボタンによってサーブレットの処理を変えたい

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。

Aベストアンサー

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



---------------------------------------------------

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

---------------------------------------------------

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=M...続きを読む

Qhiddenのvalueの値を変えたい

おはようございます。
教えていただきたいことがあります。
HTMLのほうに
<input type="hidden" name="btn" value="">
と書きます。
それでJavaSctiptのfunctionの中で
document.forms[0].btn.value=funcitonの引数;
とやっているのですが、hiddenのvalueの中に値が入っていないようです。
どうしてでしょうか?
こういう使い方ってできないものなのでしょうか?

宜しくお願いします。

Aベストアンサー

functionから値を設定できるはずですよ。

「forms[0]」ありますが、複数フォームを定義したりはしていないでしょうか?
直接、フォーム名を記述した方が、安全かもしれません。

下記のように作成すれば、動作しました。


<html>

<head>
<script type="text/javascript">
<!--
function setVal(val) {
document.forms.test_form1.btn.value=val
document.forms.test_form1.txt.value=val
}
// -->
</script>
</head>

<body onload="javascript:setVal('abc')">
<form name="test_form1">
<input type="hidden" name="btn" value="">
<input type="text" name="txt" value="">
</form>
</body>

</html>

functionから値を設定できるはずですよ。

「forms[0]」ありますが、複数フォームを定義したりはしていないでしょうか?
直接、フォーム名を記述した方が、安全かもしれません。

下記のように作成すれば、動作しました。


<html>

<head>
<script type="text/javascript">
<!--
function setVal(val) {
document.forms.test_form1.btn.value=val
document.forms.test_form1.txt.value=val
}
// -->
</script>
</head>

<body onload="javascript:setVal('abc')">
<form name="test_form...続きを読む

Qリクエストに応じたselectedの初期値設定方法

リクエストに応じたOPTIONをselectedの初期値にする方法を教えて下さい。

java servletからjspを表示する際に、
setAttributeした値に応じてプルダウンの初期値に設定するにはどうしたら良いですか?

以下の様にDetail.jspに移動する前に、NOをセットしています。
普通に実行したら、YESで表示されてしまいます。
jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

例)
[[[[[ShowDetail.java]]]]]
request.setAttribute("JAPAN", "NO");
request.getRequestDispatcher("/Detail.jsp")
.forward(request, response);

[[[[Detail.jsp]]]]
<form name="Japan">
<table border="1">
<tr>
<th>Japan</th>
<td>
<select name="Japan" id="Japan" >
<option value="YES">YES</option>
<option value="NO">NO</option>
<option value="KNOW">DON'T KNOW</option>
</select>
</td>
</tr>
</table>
</form>

リクエストに応じたOPTIONをselectedの初期値にする方法を教えて下さい。

java servletからjspを表示する際に、
setAttributeした値に応じてプルダウンの初期値に設定するにはどうしたら良いですか?

以下の様にDetail.jspに移動する前に、NOをセットしています。
普通に実行したら、YESで表示されてしまいます。
jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

例)
[[[[[ShowDetail.java]]]]]
request.setAttribute("JAPAN", "NO");
request.getRequestDispatcher("/Detail.jsp")
.f...続きを読む

Aベストアンサー

こんにちは。

>普通に実行したら、YESで表示されてしまいます。
>jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

あと、カテゴリがJavaScriptではなくJavaですね。

順に考えてみませんか。初期値を設定するには何が必要でしょうか。
今は何もしていないから一番上のYESが表示されています。
<option value="NO" selected="selected">とする必要がありますよね。
そうしたらそれを出力するようにJSPを記述すればいいわけです。

フレームワークを何も利用していなければ以下のようになると思います。

<%
// 例だとjapanにNOが入っている
String japan = (String)request.getAttribute ( "JAPAN" );
%>

<select>
<option value="YES"<%= "YES".equals(japan) ? " selected=\"selected\"" : ""; %>>YES</option>
<option value="NO"<%= "NO".equals(japan) ? " selected=\"selected\"" : ""; %>>NO</option>
<option value="KNOW"<%= "KNOW".equals(japan) ? " selected=\"selected\"" : ""; %>>KNOW</option>
</select>

各optionでどの文字列が入っているかによってselected="selected"を出力すれば良いです。

<%= "YES".equals(japan) ? " selected=\"selected\"" : ""; %>

上の記述は

if ( "YES".equals(japan) ) {
out.write ( " selected=\"selected\"");
} else {
out.write ( "" );
}
と同義です。
ようするにjapanにYESが入ってきたらselected="selected"を出力することにより初期選択項目とする。
NOが入ってくれば"YES".equals(japan)には該当しないので無出力、次の"NO".equals(japan)で該当するのでNOの<option>が初期値となります。

こんにちは。

>普通に実行したら、YESで表示されてしまいます。
>jsp側で何かを追記すれば良いと思うのですが、全然わかりません。。。

あと、カテゴリがJavaScriptではなくJavaですね。

順に考えてみませんか。初期値を設定するには何が必要でしょうか。
今は何もしていないから一番上のYESが表示されています。
<option value="NO" selected="selected">とする必要がありますよね。
そうしたらそれを出力するようにJSPを記述すればいいわけです。

フレームワークを何も利用していなければ以下のようになると...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング