添加和删​​除数据库中的条目

时间:2012-04-26 16:51:13

标签: database jsp dictionary javabeans

以下代码来自我的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>

1 个答案:

答案 0 :(得分:0)

你的逻辑存在严重问题。

根据

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

如果三者中的任何一个值为NULL,则它将显示要添加的表单。如果没有,那么它将使用wordData.addWord(word);添加词,然后转发到wordListView.jsp。所以,这适用于添加。

现在,您再次检查null的所有相同的三个字段,并根据要删除的相同显示形式(即在文本框中)。在你删除按钮的情况下,第一个条件(你想要添加)将是真的,它将显示具有3个输入字段的相同表单。