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());//此处控制台打印为nullList<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的方式获得sessiondwr要用 WebAction 来获得 session代码; WebAction web = WebActionFactory.get().getSession();谢谢各位了
1 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
你可能有两个地方没有配置:
1、SessionFactory
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
</bean>
2、在GeneralAction、FindAction 的bean注入SessionFactory
<bean id="GeneralAction" class="...GeneralAction">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="FindAction " class="...FindAction ">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
PS:配置过后重启试试
添加回答
举报
0/150
提交
取消