2012-03-02 9 views
0

Javaサーブレットを初めて使用しています。私は、サーブレットを使用してhtmlページを作成しています。さまざまなフィールドの中で、私は経過時間を表示しているテキストボックスフィールドを持っています。そのためのコードはここにある:nullを返すTextのgetParameterをリクエストします。

<input type="text" size="15" disabled="disabled" hidden="true" name="finalduration"> 

私は計算して入力する「finalduration」テキストボックスに値をし、送信ボタンが押されたら、それは隠された=「false」をするJavaScriptファイルを持っています。

しかし、サーブレットに戻って、私はjavascriptによって入力された値を処理しようとしていますが、私は "null"を取得します。サーブレットのコードは、私は値を取得するために使用していますが次のとおりです。

durationBar = (String)request.getParameter("finalduration"); 

アイデアは、JavaScriptの経過時間を算出する経過時間(または期間)に入り、「finalduration」ボックスに、と私サーブレットはその値を処理してデータベースに入力する必要があります。私はこのページ(コンボボックス、ドロップダウンリストなど)から他の値を読み取ることができますが、これは私が得ることができない唯一の値です。

これを処理する方法はありますか?

EDIT 「無効」を削除しました。現在は機能しています。

ここで実装しようとしているアイデアはタイマーバーです。人が私のサイトに来て、「開始時刻」をクリックすると、タイマーが始まり、画面に表示されます。タイマーが実行されている間は、「ファイナライズ」は表示されません。人が「タイマーを止める」をクリックすると、継続時間はjavascriptを使用して計算され、最終的な継続時間は「finalduration」テキストフィールドとともにページに表示されます。これは、期間を計算する目的を無効にするため、ユーザーが最終期間を編集できないように実装したい理由です。

これを実装する方法に関するアイデアは高く評価されます。

+0

あなたの '入力 'の周りに'フォーム 'がありますか? –

+0

あなたの 'finalduration'はあなたのサーブレットを指すアクションで' form'の中になければなりません –

+0

申し訳ありませんが、忘れてしまいました。このコードはすべて、サーブレットを指す "フォーム"タグの内側にあります。それで、これ以外の要素から値を取得しています。 – BlueChips23

答えて

1

無効なフォームフィールドは、ユーザーエージェントaccording to the HTML specificationによって送信されません。 disabled属性を削除するだけで(隠しフィールドはあまり意味がありません)、機能するはずです。

更新:指摘したように、フィールドを正しく隠すわけではありません。正しいマークアップは次のようになります。

<input type="hidden" name="finalduration"> 

私はすでに言ったようしかし、ユーザーが潜在的に値を変更し、彼らが望むどのような値提出することができます。 ではないは、悪意のあるユーザーが変更したくない値を格納する隠しフィールド(または他のフォームフィールド)を使用します。

+0

@deporter申し訳ありませんが、私の答えを書くのを始めたときにコメントはありませんでした。いずれにしても、少なくとも現在は関連する仕様への参照があります。 – biziclop