package action;
import java.util.List;
import util.GeneralAction;
public class FindAction extends GeneralAction{
private static final long serialVersionUID = 1L;
public List<String> getNames() {
return (List<String>)getSession().get("names");
}
public void setNames(List<String> names) {
getSession().put("names", names);
}
//查找角色名称是否存在
public boolean checkRole(String name)
{
System.out.println(getSession());//此处控制台打印为null
List<String> names = getNames();
System.out.println(names);
if(names == null)
{
names = daoFactory.getRoleDa().getAllRoleName();
setNames(names);
}
if(names.contains(name))
{
return false;
}
return true;
}
}
getSession在父类GeneralAction中定义了,
项目是SSH三个框架整合的,又加了个dwr,
所以Action都是放在Spring容器中的,
dwr我写了2个测试类,一个是dao类,测试通过,
另一个额就是这个action了,也显示生成成功,
但一测试方法就显示空指针异常 - -
打印出来才发现 getSession() 是 null
别的地方调用的时候都很正常,
这是怎么回事啊?
问题我自己知道了,dwr有自己获得session的方式,而不能用struts的方式获得session
dwr要用 WebAction 来获得 session
代码; WebAction web = WebActionFactory.get().getSession();
谢谢各位了
尚方宝剑之说
相关分类