2012-04-26 7 views
1

次のコードは、私のaddRemove.jspのものです これは、自分のデータベースのワードテーブルに新しい単語を送信するためのものと、削除するためのものです。単語を追加するには、germanName、gender、およびenglishNameを入力する必要があります。提出すると、ユーザーは更新された表を見ることができます。データベースからのエントリの追加と削除

以下では、ユーザーが単語を削除するためにgermanName値を指定する必要がある削除フォームを作成しました。ボタンはユーザーを更新されたテーブルに再度誘導する必要があります。問題は、最初の送信ボタンだけが私をリダイレクトすることです。さらに、除去は全く起こらないようである。 addRemove.jspのみを提供しますが、WordDataBean.javaファイルを投稿することもできます。もしあなたがそれを見てみる必要があると思えば、

addRemove.jsp

<?xml version = "1.0"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<%-- beans used in this JSP --%> 
<jsp:useBean id = "word" scope = "page" 
      class = "org.me.jsp.beans.WordBean" /> 
<jsp:useBean id = "wordData" scope = "request" 
      class = "org.me.jsp.beans.WordDataBean" /> 

<html xmlns = "http://www.w3.org/1999/xhtml"> 

    <head> 
     <title>Student Registration Form</title> 

     <style type = "text/css"> 
      body { 
       font-family: tahoma, helvetica, arial, sans-serif; 
      } 

      table, tr, td { 
       font-size: .9em; 
       border: 1px groove; 
       padding: 2px; 
       background-color: white; 
      } 
     </style> 
    </head> 

    <body> 
     <jsp:setProperty name = "word" property = "*" /> 

     <% // start scriptlet 

        if (word.getGermanName() == null 
          || word.getGender() == null 
          || word.getEnglishName() == null) { 

     %> <%-- end scriptlet to insert fixed template data --%> 

     <form method = "post" action = "addRemove.jsp"> 
      <p>To add a new word complete the form below</p> 

      <table> 
       <tr> 
        <td>German name</td> 

        <td> 
         <input type = "text" name = "germanName" /> 
        </td> 
       </tr> 

       <tr> 
        <td>Gender</td> 

        <td> 
         <input type = "text" name = "gender" /> 
        </td> 
       </tr> 

       <tr> 
        <td>English Name</td> 

        <td> 
         <input type = "text" name = "englishName" /> 
        </td> 
       </tr> 

       <tr> 
        <td colspan = "2"> 
         <input type = "submit" 
           value = "Submit" /> 
        </td> 
       </tr> 
      </table> 
     </form> 

     <% // continue scriptlet 
       } // end if 
       else { 
        wordData.addWord(word); 

     %> <%-- end scriptlet to insert jsp:forward action --%> 

     <%-- forward to display word list --%> 
     <jsp:forward page = "wordListView.jsp" /> 

     <% // continue scriptlet 

        } // end else 

     %> <%-- end scriptlet --%> 

     <% // start scriptlet 

        if (word.getGermanName() == null 
          || word.getGender() == null 
          || word.getEnglishName() == null) { 

     %> <%-- end scriptlet to insert fixed template data --%> 

     <form method = "post" action = "addRemove.jsp"> 
      <p>To remove word complete the form below</p> 

      <table> 
       <tr> 
        <td>German name</td> 

        <td> 
         <input type = "text" name = "germanName" /> 
        </td> 
       </tr> 


       <tr> 
        <td colspan = "2"> 
         <input type = "submit" 
           value = "Remove" /> 
        </td> 
       </tr> 
      </table> 
     </form> 

     <% // continue scriptlet 
       } // end if 
       else { 
        wordData.removeWord(word); 

     %> <%-- end scriptlet to insert jsp:forward action --%> 

     <%-- forward to display word list --%> 
     <jsp:forward page = "wordListView.jsp" /> 

     <% // continue scriptlet 

        } // end else 

     %> <%-- end scriptlet --%> 


    </body> 

</html> 
+0

FYI:JavaコードをJSPページに配置するときは、いつでも「コードの匂い」を考慮する必要があります。それは悪い習慣です。あなたは "モデルビューコントローラ"を学ぶべきです。 – Marvo

答えて

0

あなたのロジックに深刻な問題があります。

3のいずれかがそれを追加するために、フォームが表示されますNULL値ならば

if (word.getGermanName() == null 
     || word.getGender() == null 
     || word.getEnglishName() == null) { 

によります。そうでない場合は、wordData.addWord(word);を使用してアドワードを行い、次にwordListView.jspに転送します。したがって、これはaddでうまく動作します。

今度は、nullの同じ3つのフィールドをすべて確認し、削除する同じ表示フォーム(テキストボックス)に基づいています。削除ボタンの最初の条件(あなたが追加のために意味した)は真であり、3つの入力フィールドを持つ同じフォームを表示します。

+0

私はこれに同意します。これは私がそこで間違っている部分なので、どのような条件が必要であり、削除テーブルのためにこれをどのように正確に形成すべきですか? –

関連する問題