您的位置:首页 > 产品设计 > UI/UE

继承的父类的request属性为啥 用不了?

2015-08-03 14:21 543 查看

基本的Action类,实现了ServletRequestAware,ServletResponseAware 接口,并重写了相对应的方法。

package cn.it.elec.web.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class BaseAction extends ActionSupport implements ServletRequestAware,
ServletResponseAware {

@SuppressWarnings("unused")
private HttpServletRequest request = null;
@SuppressWarnings("unused")
private HttpServletResponse response = null;

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

@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

}


ElecCommonMsgAction 继承了 BaseAction 类,这样的话,就是可以直接使用request的。但是,直接写request会显示错误。



package cn.it.elec.web.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import cn.itcast.elec.container.ServiceProvider;
import cn.itcast.elec.service.IElecCommonMsgService;
import cn.itcast.elec.web.form.ElecCommonMsgForm;

import com.opensymphony.xwork2.ModelDriven;

@SuppressWarnings("serial")
public class ElecCommonMsgAction extends BaseAction implements ModelDriven<ElecCommonMsgForm> {

private ElecCommonMsgForm elecCommonMsgForm = new ElecCommonMsgForm();
private IElecCommonMsgService elecCommonMsgService = (IElecCommonMsgService) ServiceProvider.getService(IElecCommonMsgService.SERVICE_NAME);

@Override
public ElecCommonMsgForm getModel() {
return elecCommonMsgForm;
}

/**
* @Name:home
* @Description : 查询待办事宜列表
* @author qbz
* @version :V1.0.0(版本号)
* @Create Date :2015-08-03
* @Parameters: 无
* @return:String home 跳转到actingIndex.jsp
*/
public String home(){
List<ElecCommonMsgForm> list = elecCommonMsgService.findElecCommonMsgList();
request.setAttribute("commonList", list);
return "home";
}
}


原来是:粗心大意惹的祸!在父类BaseAction中的request 是private 的,所以,它的子类仍然不能使用这个属性!把BaseAction中的request、response 的属性 改为protected即可。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: