0

単純なHTMLフォームから収集したリクエストをJavaのHTTPRequestオブジェクトに記述しようとしています。最終的には、サーブレットに依存せずに、ユーザーがフォームから選択した内容に基づいてさまざまなデータを印刷するためにページをリロードすることを検討しています。JSPのJavaコード部分は次のようになります。

if (request.getAttribute("month") == "January") {
    getSomeData;
}
else {
    getSomeOtherData;
}

実際のHTMLコードは次のようになります。

<form name="month" method="post">
    <select name="monthField"
        <option value="January">January</option>
        <option value="February">February</option>
    </select>
    <input type="submit" value="Submit">
</form>
SHOWSOMEDATA

ページを正常に再読み込みするアクションフィールドを省略しましたが、リクエストに書き込んでいないようです。元のコード(投稿できません-仕事用です)のif / showテストはより複雑で、ページは毎回( "month" == null)の場合で読み込まれるため、明らかに正しく投稿されていません。POSTオプションを正しく実行するにはどうすればよいですか?

4

2 に答える 2

1

ページを送信する場合は、入力ボックスmonthFieldに割り当てられた名前であるフィールド名として使用します。また、メソッドを使用して文字列を次のように比較するselect必要があります。equals

   if ("January".eqauls(request.getParameter("monthField")) {

大文字と小文字を区別しない比較が必要な場合は、次のようにequalsIgnoreCaseメソッドを使用します。

   if ("January".equalsIgnoreCase(request.getParameter("monthField")) {

属性を使用してリクエストの値をとして設定した場合monthは、

   if ("January".eqauls(request.getAttribute("month")) {

また

   if ("January".equalsIgnoreCase(request.getAttribute("month")) {

注意:がnullのNullPointerException場合、不要なものを回避するよりも、最初の引数として文字列リテラル(たとえば、「January」)を配置することをお勧めします。request.getAttribute("month")

于 2012-12-26T01:40:43.757 に答える
-1
  1. クライアントからリクエスト属性を設定することはできません。リクエストパラメータのみを設定できます。

  2. monthFieldパラメータがHTMLで呼び出されているようです。

  3. ==文字列の比較には使用できません。

だから多分あなたはしたい

if ("January".equals(request.getParameter("monthField")) {
于 2012-12-26T01:39:17.160 に答える