1

追加ボタン (新しい行を追加する)、削除ボタン (行を削除する)、送信する動的テーブルを作成しました。

テーブル内のすべての情報を取得し (ユーザーが追加する行数はわかりません)、他の jsp ページで処理したいと考えています。

これは私がこれまでに持っているものです:

     <script type="text/javascript">
                var cb=new Array();
                var fn=new Array();
                var ln=new Array();
                var email=new Array();
                var i=1;
                function addRow(tableId){
                    var table=document.getElementById(tableId);

                    var rowCount=table.rows.length;
                    var row=table.insertRow(rowCount);

                    var cell= row.insertCell(0);
                    var element=document.createElement("input");
                    element.type="checkBox";
                    element.name="cb"+i+"";
                    cell.appendChild(element);

                    var cell1=row.insertCell(1);
                    cell1.innerHTML=rowCount;

                    var cell2=row.insertCell(2);
                    var element2=document.createElement("input");
                    element2.type="text";
                    element2.name="fn"+i+"";
                    cell2.appendChild(element2);

                    var cell3=row.insertCell(3);
                    var element3=document.createElement("input");
                    element3.type="text";
                    element3.name="ln"+i+"";
                    cell3.appendChild(element3);

                    var cell4=row.insertCell(4);
                    var element4=document.createElement("input");
                    element4.type="email";
                    element4.name="email"+i+"";
                    cell4.appendChild(element4);

                    i++;
                }
                function delRow(tableId){
                    var table=document.getElementById(tableId);
                    var rowCount=table.rows.length;
                    for(i=0;i<rowCount;i++){
                        var row=table.rows[i];
                        var chkbox=row.cells[0].childNodes[0];
                        if(chkbox!==null && chkbox.checked===true)
                            {
                                table.deleteRow(i);
                                rowCount--;
                                i--;
                                for(var k=1;k<rowCount;k++){
                                    var row=table.rows[k];
                                    var cell=row.cells[1];
                                    cell.innerHTML=k;
                                                           }
                           }
                    }
                 }
                function valCk(){

                }



        </script>
    </head>
    <body>
        <form name="form1" action="dataShow.jsp"  method="get">
            <input type='button' value="Add" onclick="addRow('tableData');">
            <input type='button' value="delete" onclick="delRow('tableData');">
            <input type='submit' value="submit" onclick="valCk()">
        <table id="tableData" border="3">
                <tr><td>chack</td><td>#</td><td>First name</td><td>Last name</td><td>Email</td></tr>
                <tr><td><input type='checkbox' name='cb0'></td><td>1</td><td><input type='text' name="fn0"><td><input type="text" name="ln0"></td><td><input type="email" name="email0"></td></tr>
       </table>        
       </form>

    </body>
</html>

ご覧のとおり、すべてのフィールドに配列があります。すべてのデータを配列に入れてクエリ文字列で送信すると、うまくいくと思いますが、そうではありません:/たとえば、これは3行のテーブルのクエリです

jsp コードは次のとおりです。

<%  
    String rows=request.getParameter("row");
    int foo = Integer.parseInt("rows");
    for(int i=0;i<=foo;i++){
        user u =new user();
        u.fn=request.getParameter("fn[i]");
        u.ln=request.getParameter("ln0[i]");
        u.email=request.getParameter("email[i]");

    }
      %>

500 エラーが発生します。

HTTP ステータス 500 - 内部サーバー エラー

タイプ例外レポート

メッセージ内部サーバー エラー

説明サーバーで内部エラーが発生したため、このリクエストを実行できませんでした。

例外

org.apache.jasper.JasperException: PWC6033: JSP の Javac コンパイルでエラーが発生しました

PWC6197: 次の行でエラーが発生しました: jsp ファイルの 10: /dataShow.jsp PWC6199: 生成されたサーブレット エラー: シンボル記号が見つかりません: 変数 fn 場所: クラス org.apache.jsp.dataShow_jsp

PWC6197: 次の行でエラーが発生しました: jsp ファイルの 29: /dataShow.jsp PWC6199: 生成されたサーブレット エラー: print() メソッド javax.servlet.jsp.JspWriter.print(java.lang.Object) に適したメソッドが見つかりません適用不可 (実引数リストと仮引数リストの長さが異なる) メソッド javax.servlet.jsp.JspWriter.print(java.lang.String) 適用不可 (実引数リストと仮引数リストの長さが異なる) メソッド javax.servlet.jsp.JspWriter .print(char[]) は適用されません (実引数リストと仮引数リストの長さが異なります) メソッド javax.servlet.jsp.JspWriter.print(double) は適用されません (実引数リストと仮引数リストの長さが異なります) メソッド javax.servlet .jsp.JspWriter.print(float) は適用されません (実引数リストと仮引数リストの長さは異なります) メソッド javax.servlet.jsp.JspWriter.print(long) は適用されません (実引数リストと仮引数リストの長さが異なります) メソッド javax.servlet.jsp.JspWriter.print(int) は適用されません (実引数リストと仮引数リストの長さは異なります) メソッド javax.servlet.jsp. JspWriter.print(char) は適用されません (実引数リストと仮引数リストの長さが異なります) メソッド javax.servlet.jsp.JspWriter.print(boolean) は適用されません (実引数リストと仮引数リストの長さが異なります)print(boolean) は適用されません (実引数リストと仮引数リストの長さは異なります)print(boolean) は適用されません (実引数リストと仮引数リストの長さは異なります)

注: 例外の完全なスタック トレースとその根本原因は、GlassFish Server Open Source Edition 4.0 ログで入手できます。

4

0 に答える 0