2 qq 36081710 qq_36081710 于 2017.08.28 15:34 提问

java 工具提示类报空指针?????

应用在工具类中,底层的业务代码没问题,在数据库可以删除,将点击删除按钮弹出JS提示框,写为工具类,

就是传入对应的删除提示字符串文字即可。但现在出现问题

 package Utile;
import java.io.IOException;
import java.io.PrintWriter;




import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ActionSupport;

public class MessageUtf8 extends ActionSupport implements ServletResponseAware {
    // 获取响应对象
    HttpServletResponse response = null;

    @Override
    public void setServletResponse(HttpServletResponse response) {
        this.response = response;
    }

    public void setResponse(HttpServletResponse response) {
        this.response = response;
    }

    public HttpServletResponse getResponse() {
        return response;
    }

    // 提示框单领出成方法(设置页面和显示的编码格式)
    public void Message(String messTitle) throws IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<script>" + "alert('" + messTitle + "')" + "</script>");
        out.flush();
    }
}

图片说明

页面上报空指针
图片说明

短点调试response.setContentType....response为空,可是我明明初始化了。
困扰了好久,想将出提示框方法写好成工具类就能整个项目使用了,不然每个action里都定义就出现好多重

复代码了。望解答~

4个回答

zy841958835
zy841958835   Ds   Rxr 2017.08.28 15:57

你在js端会初始化response 看下在哪做的 工具类里面补上

zy841958835
zy841958835 你看下你的js是怎么给服务端发送请求的 工具类里面类似就好了
3 个月之前 回复
qq_36081710
qq_36081710 具体怎么写?
3 个月之前 回复
li_ling_ren
li_ling_ren   2017.08.28 15:43

你在哪儿进行的初始化,有没有明确的new或是使用反射,或是注入进行实例化,如果没有那就是空值。

li_ling_ren
li_ling_ren 回复小房子CC: 这个不是初始化,这只是一个声明,所以response是null,所以空指针了。
3 个月之前 回复
qq_36081710
qq_36081710 MessageUtf8 类里, response = null;
3 个月之前 回复
huang931027
huang931027   2017.08.28 17:13

MessageUTF8.java 的37行是哪一行啊?我觉得是你这个response没有注入进去吧,所以是空的,报空指针了,你在你的Message 方法的第一行加上

setServletResponse();

这句试试

qq_36081710
qq_36081710 回复Luffy_fans_zh: 好吧,我在琢磨琢磨,谢谢。
3 个月之前 回复
huang931027
huang931027 回复小房子CC: 额,这是你写的代码,我只能看个大概,不可能你写的啥我都知道,那你已经知道原因了,把response 实例化掉就可以了
3 个月之前 回复
qq_36081710
qq_36081710 是不是我实现的类不对?
3 个月之前 回复
qq_36081710
qq_36081710 你好,没有用还是NullPointerException错误,就在response.setContentType("text/html;charset=UTF-8");这一行response为空
3 个月之前 回复
fanyizhuang
fanyizhuang   2017.08.30 11:46

Integer 可以为空,用 Integer 接收 然后先判断是否为空

Csdn user default icon
上传中...
上传图片
插入图片