try {
if(userManager.exists(u)){
System.out.print("此用户存在");
return "fail";
}
此段中userManager总是为null。如果需要具体联系。我的QQ号:382692563 加我时备注:解决你java问题
出错效果图为:
1、运行程序后首个页面图如下:
2、项目结构图如下:
3、UserAction.java文件主要部分代码:
public class UserAction extends ActionSupport {
private String username;
private String password;
private String password2;
@Autowired
private UserManager userManager;
@Override
public String execute(){
User u=new User();
u.setUsername(username);
u.setPassword(password);
try {
if(userManager.exists(u)){ //注意出错地方userManager为null
System.out.print("此用户存在");
return "fail";
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
userManager.add(u); //注意出错地方userManager为null
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "success";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword2() {
return password2;
}
public void setPassword2(String password2) {
this.password2 = password2;
}
}
4、UserDaoImpl.java主要代码如下:
@Component("userDao")
public class UserDaoImpl implements UserDao {
@Autowired
@Qualifier("mySessionFactory")
private SessionFactory mySessionFactory;
@Override
public boolean checkUserExistsWithName(String username) {
Session s=mySessionFactory.getCurrentSession();
s.beginTransaction();
long count=(long)s.createQuery("select count(*) from User u where u.username = :username")
.setString("username", username)
.uniqueResult();
s.getTransaction().commit();
if(count > 0){
return true;
}
return false;
}
@Override
public void sava(User u) {
Session s=mySessionFactory.getCurrentSession();
s.beginTransaction();
s.save(u);
s.getTransaction().commit();
}
}
5、UserManagerImpl.java部分代码如下:
@Service("userManager") //把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>
public class UserManagerImpl implements UserManager {
@Autowired
private UserDao userDao;
@Override
public boolean exists(User u) throws Exception{
return userDao.checkUserExistsWithName(u.getUsername());
}
@Override
public void add(User u) throws Exception {
userDao.sava(u);
}
}
6、beans.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"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
<context:annotation-config />
<context:component-scan base-package="com.registration.*" annotation-config="true"/> <!--spring通过扫描找@Component注解部分, 把userDAO初始化成一个对象 -->
<!-- 连接数据库部分开始 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value> <!-- 具体的数据库连接地址文件:jdbc.properties-->
</property>
</bean>
<bean id="myDataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="packagesToScan">
<list>
<value>com.registration.model</value> <!-- 将com.spring.model包内实体类全扫描,显示对哪些类做了注解-->
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <!-- 使用了mysql方言 -->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- 连接数据库部分结束 -->
<aop:aspectj-autoproxy /> <!-- 代理-->
<!-- 事务处理部分开始 -->
<bean id="myTxManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="mySessionFactory"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="myTxManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/> <!-- 在带有add的所有方法上加事务 -->
</tx:attributes>
</tx:advice>
<!-- 事务处理部分结束 -->
</beans>
12 个解决方案
#1
struts的配置文件里配一个使用spring管理对象的一个配置
#2
struts.xml目前代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="registration" extends="struts-default">
<action name="user" class="com.registration.action.UserAction">
<result name="success">registerSuccess.jsp</result>
<result name="fail">registerFail.jsp</result>
</action>
</package>
</struts>
希望说的具体点,最好代码写出来。希望加我qq:382692563 联系方便点
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="registration" extends="struts-default">
<action name="user" class="com.registration.action.UserAction">
<result name="success">registerSuccess.jsp</result>
<result name="fail">registerFail.jsp</result>
</action>
</package>
</struts>
希望说的具体点,最好代码写出来。希望加我qq:382692563 联系方便点
#3
userManager添加set方法
#4
@Autowired
private UserManager userManager;
有上面的注解就可以省略get/set方法了,由spring统一管理
private UserManager userManager;
有上面的注解就可以省略get/set方法了,由spring统一管理
#5
貌似不能省略set方法
#6
经过测试 有get/set方法不行
#7
private UserManager userManager = new UserManager () ;
试试
试试
#8
他的这种整合情况不可省略。单纯的spring可以@Autowired,他配置的整合需要set方法才可以注入。
#9
将action的@Autowired去掉试一下。不需要这个注解。
#10
#11
action注解了吗
#12
楼主结贴感言
这个帖子发出去后,有许多人参与解决,我也发到一些技术群里讨论过,但很多人都解决不了,其中不乏有一些java几年经验者。通过 1楼 和 8楼 两位提醒,最后问题终于解决了。在这里我特别感谢 8楼的用户 z2007130205 ,他主动加我qq通过远程协助帮我解决问题。一个技术员不仅有一个高深的技术,同时还有一颗热心,让人感到敬佩。我给出的分数自然就属于这两位的了。
1、我已经将此项目打包发到网上了,有需要的朋友可以下载,地址是: http://download.csdn.net/detail/leichangfeng/7420775
2、有个QQ技术群: 群号:284554283 欢迎大家加入
这个帖子发出去后,有许多人参与解决,我也发到一些技术群里讨论过,但很多人都解决不了,其中不乏有一些java几年经验者。通过 1楼 和 8楼 两位提醒,最后问题终于解决了。在这里我特别感谢 8楼的用户 z2007130205 ,他主动加我qq通过远程协助帮我解决问题。一个技术员不仅有一个高深的技术,同时还有一颗热心,让人感到敬佩。我给出的分数自然就属于这两位的了。
1、我已经将此项目打包发到网上了,有需要的朋友可以下载,地址是: http://download.csdn.net/detail/leichangfeng/7420775
2、有个QQ技术群: 群号:284554283 欢迎大家加入
#1
struts的配置文件里配一个使用spring管理对象的一个配置
#2
struts.xml目前代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="registration" extends="struts-default">
<action name="user" class="com.registration.action.UserAction">
<result name="success">registerSuccess.jsp</result>
<result name="fail">registerFail.jsp</result>
</action>
</package>
</struts>
希望说的具体点,最好代码写出来。希望加我qq:382692563 联系方便点
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="registration" extends="struts-default">
<action name="user" class="com.registration.action.UserAction">
<result name="success">registerSuccess.jsp</result>
<result name="fail">registerFail.jsp</result>
</action>
</package>
</struts>
希望说的具体点,最好代码写出来。希望加我qq:382692563 联系方便点
#3
userManager添加set方法
#4
@Autowired
private UserManager userManager;
有上面的注解就可以省略get/set方法了,由spring统一管理
private UserManager userManager;
有上面的注解就可以省略get/set方法了,由spring统一管理
#5
貌似不能省略set方法
#6
经过测试 有get/set方法不行
#7
private UserManager userManager = new UserManager () ;
试试
试试
#8
他的这种整合情况不可省略。单纯的spring可以@Autowired,他配置的整合需要set方法才可以注入。
#9
将action的@Autowired去掉试一下。不需要这个注解。
#10
#11
action注解了吗
#12
楼主结贴感言
这个帖子发出去后,有许多人参与解决,我也发到一些技术群里讨论过,但很多人都解决不了,其中不乏有一些java几年经验者。通过 1楼 和 8楼 两位提醒,最后问题终于解决了。在这里我特别感谢 8楼的用户 z2007130205 ,他主动加我qq通过远程协助帮我解决问题。一个技术员不仅有一个高深的技术,同时还有一颗热心,让人感到敬佩。我给出的分数自然就属于这两位的了。
1、我已经将此项目打包发到网上了,有需要的朋友可以下载,地址是: http://download.csdn.net/detail/leichangfeng/7420775
2、有个QQ技术群: 群号:284554283 欢迎大家加入
这个帖子发出去后,有许多人参与解决,我也发到一些技术群里讨论过,但很多人都解决不了,其中不乏有一些java几年经验者。通过 1楼 和 8楼 两位提醒,最后问题终于解决了。在这里我特别感谢 8楼的用户 z2007130205 ,他主动加我qq通过远程协助帮我解决问题。一个技术员不仅有一个高深的技术,同时还有一颗热心,让人感到敬佩。我给出的分数自然就属于这两位的了。
1、我已经将此项目打包发到网上了,有需要的朋友可以下载,地址是: http://download.csdn.net/detail/leichangfeng/7420775
2、有个QQ技术群: 群号:284554283 欢迎大家加入