2009-08-05 6 views
0

ユーザーがボタンをクリックすると、次のJSPで必要なIDがあります。form.actionを使用して、あるJSPから別のJSPにパラメータを渡します。

FirstJSP.jsp:私は、次の操作を行うにしようとしています

機能getSecond(){ するvar FRM =のdocument.getElementById( "FRMを"); frm.action = "** second.jsp?id = myId;" ** frm.submit(); }

...フォームID = "FRM" .....入力タイプ= "ボタン" 値= "次へ" のonclick = "getSecond()"/

.... ..

このコードでは2番目のページに移動しますが、idにアクセスしようとするとidがnullなのでエラーです。

私によって第2ページにIDをアクセス:

最終ロングpassedId = Long.parseLong(request.getParameter( "ID"));

私はパラメータを正しく渡していないと思いますが、その方法はわかりません。何か案は?どうもありがとうございます!

+0

あなたは指定していませんが、あなたのフォームの動作がPOSTであると仮定しています。 GETスタイルのパラメータ(つまり、?id = myId)をPOSTと混合しているような感じです。それがうまくいくならば、それをテストしなければならないだろう。 –

答えて

0

あなたが上に挙げたコード断片が文字通りあなたが書いているものであれば、あなたはidをテキスト "myId"に設定しています。これをLongとして解析しようとすると、文字列が有効な数値ではないため例外がスローされます。数字は含まれません。私はあなたが言いたいことを想定し

はMYIDがどこかに定義されており、数あるされていると仮定すると、より

frm.action = "second.jsp?ID =" + MYID

のようなものです。

+0

あなたは正しいジェイです。しかし、私がmyIdを追加しようとすると、変数は "未解決の変数または型"です。 myIdは最初に<%final long myId = Long.parseLong(request.getParameter( "id"));として定義されています。 %> 私はアクション行を に変更しました。frm.action = "second.jsp?id =" + <%=myId%>;まだ仕事をしていない –

1

[OK]を...私は私の形でいずれかの方法を使用してwans't ...私のミスを見つけたので、私は私の最後のノート、行動に言及したように私は、また

form name="frm" method="post" 

にそれを更新します現在は

frm.action="second.jsp?id="+<%=myId%>; 

が動作しています。

+0

私はあなたの返事に返信する前に、あなたはそれを理解しましたか?クール。その後、私はそれについて考えるのをやめ、昼寝を再開することができます。 – Jay

+0

ところで、HTMLフォーム要素に 'method'属性が指定されていない場合は、デフォルトで「GET」になります。そのような場合は、代わりにサーブレットのdoGet()を実装する必要があります。 – BalusC

関連する問題