检索隐藏字段值时,NPE发生在jsp中

时间:2014-12-10 19:06:24

标签: java javascript jsp

在我的jsp中,我有两个输入字段和一个按钮。输入字段值设置为两个隐藏字段。按钮单击事件调用js函数,该函数尝试检索隐藏的字段值,如下所示

<% String wsdl1Path = request.getParameter("wsdl1path").toString();    
String    wsdl2Path = request.getParameter("wsdl2path").toString();    
WsdlCompare com = new WsdlCompare();    
String url = "";    
if ( wsdl1Path != null && wsdl2Path != null ) {    
url= com.compare(wsdl1Path,wsdl2Path);    
}
....

这导致了NPE。如果处理Exception,则不会调用java方法。 注意:wsdl1path和wsdl2path:隐藏字段的ID

错误日志:

[2014-12-10 23:08:11,077] ERROR {org.apache.catalina.core.ApplicationDispatcher} -  Servlet.service() for servlet bridgeservlet threw exception
java.lang.NullPointerException
    at org.apache.jsp.wsdlcompare.index_jsp._jspService(index_jsp.java:179)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155)
    at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
.......

1 个答案:

答案 0 :(得分:0)

String wsdl1Path = request.getParameter("wsdl1path");
String wsdl2Path = request.getParameter("wsdl2path");

WsdlCompare com = new WsdlCompare();    
String url = "";    
if ( wsdl1Path != null && wsdl2Path != null ) {    
  url= com.compare(wsdl1Path,wsdl2Path);    
}else{
  //Handle NPE
}

试试这个......

如果wsdl1Path或wsdl2Path变为null,您将能够处理异常。

并尝试通过GET或POST方法传递两个参数,如果它的GET加载页面包含上述两个参数。

例如:index.jsp?wsdl1Path=wsdl1_path&wsdl2Path=wsdl2_path

相关问题