应用在工具类中,底层的业务代码没问题,在数据库可以删除,将点击删除按钮弹出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里都定义就出现好多重
复代码了。望解答~
你在哪儿进行的初始化,有没有明确的new或是使用反射,或是注入进行实例化,如果没有那就是空值。
你在js端会初始化response 看下在哪做的 工具类里面补上
MessageUTF8.java 的37行是哪一行啊?我觉得是你这个response没有注入进去吧,所以是空的,报空指针了,你在你的Message 方法的第一行加上
setServletResponse();
这句试试
Integer 可以为空,用 Integer 接收 然后先判断是否为空