练手,两个Action,一个正常,另一个苦恼了一天了,希望好心人相助报错信息
ava.lang.NullPointerException
action.ListAction.execute(ListAction.java:17)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)打断点调试
ListAction.java中 listuser值为null---------------------------------------------------
以下为代码
---------------------------------------------------
ListAction.javapackage action;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import dao.ListUsers;public class ListAction extends ActionSupport{
private ListUsers listuser;
public String execute(){
String flag ="failed";
List list =listuser.listUser(); //写法有问题?
if(list!=null && list.size()>0){
flag="success";
}
return flag;
} public void setListuser(ListUsers listuser) {
this.listuser = listuser;
}
}
-----------------------------------------------------------------------
DAO层(还没写biz,只想写写试试,结构没分太清)
package dao;
import java.util.ArrayList;
import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class ListUsers extends HibernateDaoSupport{
public List listUser(){
List userList = new ArrayList();
String hql="from entity.Userinfo";
List list = this.getHibernateTemplate().find(hql);
if(list.size()>0 && list!=null){
return list;
}
return null;
}
public ListUsers(){}
}
----------------------------------------------------
实体及hbm.xml不贴了,反向自动生成的配置文件
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<!-- 将Struts2交给spring管理 -->
<constant name="struts.objectFactory" value="spring"></constant>
<!-- 导入struts-default.xml文件 -->
<include file="struts-default.xml"></include>
<!-- 将action内容放在package下 name、extends值可以使用默认 -->
<package name="default" extends="struts-default">
<action name="loginAction" class="action.LoginAction">
<result name="fail">/login.jsp</result>
<result name="success">/success.jsp</result>
</action>
<action name="listAction" class="action.ListAction">
<result name="failed">/login.jsp</result>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
applicationContext.xml<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="ssh2Test"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/ssh2Test">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="ssh2Test" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>entity/Userinfo.hbm.xml</value></list>
</property></bean>
<!-- 配置PersonManage.java类文件 -->
<bean id="personManage" class="dao.PersonManage" abstract="false" lazy-init="default"
autowire="default" dependency-check="default">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="listUsers" class="dao.ListUsers" abstract="false" lazy-init="default"
autowire="default" dependency-check="default">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- 配置LoginAction.java类文件 -->
<bean id="loginAction" class="action.LoginAction">
<property name="personManage">
<ref bean="personManage"/>
</property>
</bean>
<bean id="listAction" class="action.ListAction" scope="prototype">
<property name="listuser">
<ref bean="listUsers"/>
</property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 配置spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>--------------------------------------------------
谢谢
ava.lang.NullPointerException
action.ListAction.execute(ListAction.java:17)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)打断点调试
ListAction.java中 listuser值为null---------------------------------------------------
以下为代码
---------------------------------------------------
ListAction.javapackage action;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import dao.ListUsers;public class ListAction extends ActionSupport{
private ListUsers listuser;
public String execute(){
String flag ="failed";
List list =listuser.listUser(); //写法有问题?
if(list!=null && list.size()>0){
flag="success";
}
return flag;
} public void setListuser(ListUsers listuser) {
this.listuser = listuser;
}
}
-----------------------------------------------------------------------
DAO层(还没写biz,只想写写试试,结构没分太清)
package dao;
import java.util.ArrayList;
import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class ListUsers extends HibernateDaoSupport{
public List listUser(){
List userList = new ArrayList();
String hql="from entity.Userinfo";
List list = this.getHibernateTemplate().find(hql);
if(list.size()>0 && list!=null){
return list;
}
return null;
}
public ListUsers(){}
}
----------------------------------------------------
实体及hbm.xml不贴了,反向自动生成的配置文件
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<!-- 将Struts2交给spring管理 -->
<constant name="struts.objectFactory" value="spring"></constant>
<!-- 导入struts-default.xml文件 -->
<include file="struts-default.xml"></include>
<!-- 将action内容放在package下 name、extends值可以使用默认 -->
<package name="default" extends="struts-default">
<action name="loginAction" class="action.LoginAction">
<result name="fail">/login.jsp</result>
<result name="success">/success.jsp</result>
</action>
<action name="listAction" class="action.ListAction">
<result name="failed">/login.jsp</result>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
applicationContext.xml<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="ssh2Test"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/ssh2Test">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="ssh2Test" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>entity/Userinfo.hbm.xml</value></list>
</property></bean>
<!-- 配置PersonManage.java类文件 -->
<bean id="personManage" class="dao.PersonManage" abstract="false" lazy-init="default"
autowire="default" dependency-check="default">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="listUsers" class="dao.ListUsers" abstract="false" lazy-init="default"
autowire="default" dependency-check="default">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- 配置LoginAction.java类文件 -->
<bean id="loginAction" class="action.LoginAction">
<property name="personManage">
<ref bean="personManage"/>
</property>
</bean>
<bean id="listAction" class="action.ListAction" scope="prototype">
<property name="listuser">
<ref bean="listUsers"/>
</property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 配置spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>--------------------------------------------------
谢谢
解决方案 »
- 新手询问,JSP的全局函数应该写在哪?
- jsp参数传递
- 请问做这样一个项目大概需要多少钱
- Select没有办法传值给Text
- 如何捕获IE的关闭动作?急!
- 使用tomcat5 怎样重新编译一个曾经编译过的JSP文件
- HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.register_jsp
- 我把tomcat的webapp目录下的某个目录删除,是不是对应的服务就停止了
- 急,取得当前电脑日期问题!!!!
- 有关jsp问题:如何觉察本网页被浏览?
- tomcat不支持js导出excel表格
- 不用ssh,能用dwr框架吗?
再仔细查看下配置啊
<ref bean="listUsers"/>
细心点啊 大小写
在这这后看能不能输出list的长度 检验查询是否有结果
zhan jin lai
这里出的问题
scope="prototype"
把这个去掉就可以了