【发布时间】:2014-11-01 22:54:20
【问题描述】:
希望有人可以帮助我解决我遇到的一个非常奇怪的问题。
在下面的代码中,我试图打印出请求中传递的数字。它是一个称为数字的字符串。
String number = request.getParameter("number");
^ 字符串
out.print(number);
^ 打印编号
目前由于空指针异常而失败,但是当我打印出 number.length() 时,它会打印长度。
堆栈跟踪还说空指针出现在这一行
JSONObject JSONOBJ = new JSONObject(APIResponse.Response);
谁能解释这是怎么回事?
谢谢!
<%
if (request.getParameter("number") != null)
{
String number = request.getParameter("number");
if (number.matches("^[0-9]+"))
{
%>
<%
ApiRequest APIRequest = new ApiRequest(
"/broadband/availability/" + number, "GET", null);
/*
COULD ALSO PASS POSTCODE BUT ONLY USING CLI FOR NOW
*/
ApiClient APIClient = new ApiClient();
api.ApiResponse APIResponse = APIClient.send(APIRequest);
JSONObject JSONOBJ = new JSONObject(APIResponse.Response);
JSONArray JSONARR = JSONOBJ.getJSONArray("products");
%>
Services for
<%
out.print(number);
%>
【问题讨论】:
-
什么是
out,它在哪里设置? (另外,你是否使用了一些标签中没有提到的框架?我不知道那些<%的东西是什么。) -
很抱歉应该提到这是一个 JSP。 之外是 HTML。 Out是浏览器。
-
你试过修剪
String吗?String number = request.getParameter("number"); number = (number != null) ? number.trim() : "0"; -
您确定您的
APIResponse不为空吗?你能检查一下吗? -
发布堆栈跟踪,并显示相关的行号。根据您的描述,这些 NPE 的确切来源尚不清楚。
标签: java jsp variables pointers null