从.jsp文件数据发送到aome JavaScript函数.jsp文件

问题描述:

以下是OneEmployee.jsp从.jsp文件数据发送到aome JavaScript函数.jsp文件

<%@ 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> 

以下是// 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> 

以下是一个Java servlet UpdateEmployee.java

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); 

我想在的Welcome.jsp中的update()从OneEmployee.jsp获取输入数据和将数据发送到servlet 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

你检查的实际要求?使用F12打开浏览器控制台,发出请求,然后检查网络选项卡是否确实设置了所有参数。 –

+0

不,它表示UpdateEmployee.java的“内部服务器错误”servlet – user2353193

+0

这就是响应。我们想知道您实际发送到服务器的内容。什么是请求的URL(因为您通过url查询传递参数)? –

你试图所以异常被抛出来解析为空字符串:

的问题是,你得到从前端代码(AJAX REQ)的空值。 (在发送之前在浏览器控制台中重新检查)。

首先检查,如果它不是nullempty当您分析otherewise返回0:

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

你解决了你的问题吗? –