我们前面对部门进行操作,那都是基于一个公司而言的,对于不同的公司,它的部门是不同的,显示的数据也应该是不同的,所以我们应该将公司信息抽取出来,设置它为登录的公司信息,这里先设置默认值id=1的公司,后期修改。
然后对其功能执行的时候,基础BaseController作父类,就能拥有它的所有属性。
子类继承父类,拥有父类的所有属性。
获取父类的公司信息,通过公司显示对应的数据,获取父类自动装载的request,response,session,applicationContext
等信息
//定义父类BaseController,让子类继承父类的request,session,response,并且注入对象
//子类继承父类,可以自动拥有父类的非私有成员(方法或者变量)
//当前默认登录的公司id为1,名称为吉首大学
public class BaseController {
//定义一个可以返回companyId,对部门管理要看公司,这里先设死为1,也就是对id为1的公司的部门进行管理
public String getLoginCompanyId(){
return "1";
}
//定义一个可以返回companyName
public String getLoginCompanyName(){
return "吉首大学";
}
//在父类中定义成员变量 request,session,response,并且注入对象
// 以后控制器方法可以直接使用
@Autowired
protected HttpServletRequest request;
//注入session
@Autowired
protected HttpSession session;
//注入response
@Autowired
protected HttpServletResponse response;//需要disable inspection
}
测试:设置一个继承基类BaseController
的controller来访问基类的对象
@Controller
@RequestMapping("/system/testBase")
public class TestBaseController extends BaseController {
//测试获取基类BaseController的request请求
@RequestMapping(path="/testRequest",method ={ RequestMethod.GET})
public String testRequest(HttpServletRequest request){//springmvc会赋值
l.info("testRequest request="+request.getParameter("age"));
request.setAttribute("username","strive_day");
return "testBase";
}
}
好处
- 继承 BaseController的类可以调用获取companyId与companyName的方法
- 控制器方法还可以直接使用request,response,session等对象(springmvc可以给控制器成员变量赋值)