空指针问题 NullPointerException
我采用的是s2sh框架
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>
<package name="users" namespace="/" extends="struts-default">
<!--<action name="reg" class="reg">
<result name="success">/regSuc.jsp</result>
<result name="error">/regFail.jsp</result>
</action>
<action name="queryUser" class="queryUser">
<result name="userlist">/userlist.jsp</result>
</action>
<action name="publishNews" class="publishNews">
<result name="newslist">/newslist.jsp</result>
</action> -->
<action name="reg" class="action.UserAction">
<result name="success">/regSuc.jsp</result>
</action>
</package>
</struts>
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">
<!-- 配置Spring --><!--
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:application-*.xml
</param-value>
</context-param>
-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml,/WEB-INF/classes/spring/*-Context.xml</param-value>
</context-param>
<!-- 配置Spring的监听 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 配置Hibernate -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置Struts2 -->
<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>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!-- 配置Spring的过滤器,解决乱码问题 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>ConnectorServlet</servlet-name>
<servlet-class>
net.fckeditor.connector.ConnectorServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 登录检查过滤器_Satrt
<filter>
<filter-name>loginFilter</filter-name>
<filter-class> com.datainfo.util.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/reg.jsp</url-pattern>
</filter-mapping>
-->
<!-- 配置fckedit -->
<servlet-mapping>
<servlet-name>ConnectorServlet</servlet-name>
<url-pattern>
/fckeditor/editor/filemanager/connectors/*
</url-pattern>
</servlet-mapping>
</web-app>
下面连个是spring的配置文件
application.xml内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.0.50:3306/zhhb</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>rstd</value>
</property>
</bean>
<!-- 创建sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 注入数据源 -->
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<!-- 注入映射文件 -->
<property name="mappingLocations">
<list>
<value>/WEB-INF/classes/vo/*.hbm.xml</value>
</list>
</property>
<!-- 注入其它一些配置属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
</props>
</property>
</bean>
<!-- ************************************************************************** -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<!-- PROPAGATION_REQUIRED:事务传播行为
如果事务存在,则将语句加入事务,否则新建事务
-->
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
</beans>
下面是admin_context.xml内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>
<bean id="userDao" class="dao.impl.UserDaoImpl" autowire="byName"></bean>
</beans>
reg.jsp内容如下
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
out.println(path);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>SSH2用户注册</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="fckeditor/fckeditor.js"> </script>
</head>
<body>
<h2>用户注册</h2> <a href="<%=path %>/SlideTrans.html">图片动态显示效果
</a> <a href='newspublish!newsView.action' target="_blank"><strong>后台管理</strong></a>
<h1><a href=""><br></a></h1>
<form action="reg.action" method="post">
用户名:<input type="text" name="user.username " /><br />
密 码:<input type="password" name="user.password "><br />
性别:<input type="text" name="user.sex " /><br />
电话:<input type="text" name="user.mobile " /><br />
信箱:<input type="text" name="user.email " /><br />
<input type="submit" value="注册" /><input type="reset" value="重置" />
</form>
</body>
</html>
当我点击注册后提示
Action中的那条语句是能够打印出前台提交的内容的
[color=#FF0000]严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at action.UserAction.execute(UserAction.java:24)[/color]