簡體   English   中英

JSP java.lang.NullPointerException

[英]JSP java.lang.NullPointerException

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NullPointerException
java.util.Arrays.mergeSort(Arrays.java:1156)
java.util.Arrays.sort(Arrays.java:1080)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

我正在嘗試對字符串數組進行排序並接收java.lang.NullPointerException。 這只是代碼的一部分,但卻是與錯誤相關的相關部分。 我知道當我初始化字符串數組myRows時,它將值設置為null。 但是,我正在檢查是否為空,並將item_value,period_value和periodAmt_value的值設置為設置值。 當我打印出數組的內容時,它確實包含設置值。 不明白為什么java.util.Arrays.sort()無法正常工作以及為什么會出錯。 很感謝任何形式的幫助!!

<%

String item_name;
String item_value;

String period_name;
String period_value;

String periodAmt_name;
String periodAmt_value;

String annualAmt_name;
int error_count = 0;
int annualAmt_value = 0;
int totalExp = 0;

String[] myRows = new String[3];


for (int i=0; i < 3; i++)
{
item_name = "item" + i;
item_value = request.getParameter(item_name);

if (item_value == null) 
{
        item_value = "Rent";
}

period_name = "period" + i;
period_value = request.getParameter(period_name);

if (period_value == null) 
{
    period_value = "52";  //default value
}

periodAmt_name = "periodAmt" + i;
periodAmt_value = request.getParameter(periodAmt_name);

if (periodAmt_value == null) 
{
    periodAmt_value = "520";
}


myRows[i] = item_value + "|" + period_value + "|" + periodAmt_value;

out.println(myRows[i]);


java.util.Arrays.sort(myRows);


String text = myRows[i];
StringTokenizer st = new StringTokenizer(text, "|");
String[] myFields = new String[st.countTokens()];

out.println("<tr>");

for (int j = 0; j < myFields.length; j++)
{ 
    myFields[j] = st.nextToken();


    if(j==0)
    {
    out.println("<td><input type=text name=" + item_name + " value=" + myFields[j] + "></td>\n");
    }

查看您的異常日志后,我可以高度肯定地說您的問題是由於嘗試對包含空元素的數組進行排序而引起的。 鑒於您的代碼流程,我強烈支持我先前的建議,即完整地構建您的數組,然后對其進行排序,然后使用它來生成html。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM