2017-02-23 6 views
0

を.jspファイルaomeでjavascript関数への.jspファイルからのデータから、送信後でのwelcome.jsp //ホームページJSP

<script> 
    function update(id) { 
     var empid = "?empid=" + id; 
     var formdata = "xyz"; 
     var fname = document.getElementById("fname").value; 
     var lname = document.getElementById("lname").value; 
     var dob = document.getElementById("dob").value; 
     var salary = document.getElementById("salary").value; 
     var paramlist = "?empid=" + empid + "&fname=" + fname + "&lname=" + lname + "&dob=" + dob + "&salary=" + salary; 
     $.ajax({ 
     type: "post", 
     data: formdata, 
     url: "UpdateEmployee" + paramlist, 
     success: function (data) { 
      $('#row' + id).html(data); 
     } 
    }); 
    } 
</script> 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<form> 
    <td> <c:out value="${emp.getEmpid()}"/></td> 
    <td> <input type="text" id="fname" value="<c:out value="${emp.getFname()}"/>"></td> 
    <td> <input type="text" id="lname" value="<c:out value="${emp.getLname()}"/>"></td> 
    <td> <input type="text" id="dob" value="<c:out value="${emp.getDob()}"/>"></td> 
    <td> <input type="text" id="salary" value="<c:out value="${emp.getSalary()}"/>"></td> 
    <td><button type="button" class="btn btn-xs" onclick="update(<c:out value="${emp.getEmpid()}"/>)">Update</button></td> 
</form> 

後OneEmployee.jsp

されています私はwelcome.jspを更新()でOneEmployee.jspからの入力データをフェッチしようとしています

String id = request.getParameter("empid"); 
    String fname = request.getParameter("fname"); 
    String lname = request.getParameter("lname"); 
    String dob = request.getParameter("dob"); 
    String sal = request.getParameter("salary"); 
    double salary = Double.parseDouble(sal); 
    int empid = Integer.parseInt(id); 

JavaサーブレットUpdateEmployee.javaとサーブレットUpdateEmployee.javaにデータを送信します。 Glassfishサーバーが応答しました:

Warning: StandardWrapperValve[UpdateEmployee]: Servlet.service() for servlet UpdateEmployee threw exception 
java.lang.NumberFormatException: empty String 
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842) 
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) 
at java.lang.Double.parseDouble(Double.java:538) 

問題:何ですか?何がここで間違っていたのですか? OneEmployee.jspがWelcome.jspに空文字列を渡してUpdateEmployee、jspに渡すのはなぜですか?

+1

は、あなたが実際の要求を確認しました:あなたはotherewiseリターン0を解析する際に、それがnullemptyではありません最初の場合

チェック! F12でブラウザコンソールを開き、要求を行い、すべてのパラメータが実際に設定されているかどうか、ネットワークタブをチェックインします。 –

+0

いいえ、UpdateEmployee.javaサーブレット – user2353193

+0

の「内部サーバーエラー」と表示されます。これは応答です。実際にサーバーに送信していることを知りたいと思います。リクエストのURLは何ですか(あなたはURLクエリを通じてパラメータを渡しています)? –

答えて

0

あなたは、例外がスローされるように、空の文字列を解析しようとしている:

問題は、あなたがフロントエンドコード(アヤックスREQ)から空の値を取得しているということです。 (送信する前にブラウザのコンソールで再チェックしてください)。

String id = request.getParameter("empid"); 
String fname = request.getParameter("fname"); 
String lname = request.getParameter("lname"); 
String dob = request.getParameter("dob"); 
String sal = request.getParameter("salary"); 

double salary = 0; 
if (sal != null && sal.length() > 0) { 
    try{ 
     salary = Double.parseDouble(sal); 
    }catch(Exception e) { 
     salary = 0; 
    } 
} 

int empid = 0; 
if (id != null && id.length() > 0) { 

    try{ 
     empid = Integer.parseInt(id); 
    }catch(Exception e) { 
     empid = 0; 
    } 
} 
+0

問題を解決しましたか? –