IUserDaopublic interface IUserDao {
public User queryByUserNameAndPassword(String userName, String password) throws Exception;}UserDaopublic User queryByUserNameAndPassword(String userName, String password)
throws Exception {
String hql = "FROM User as u WHERE u.userName=? and u.password=?"; String[] str = new String[] {userName, password}; List<User> users = this.getHibernateTemplate().find(hql, str); if (users != null && users.size() >= 1) { return users.get(1); } else { return null; }
}IUserService public String isLogin(String userName, String password) throws Exception;userServicepublic String isLogin(String userName, String password) throws Exception {
User user = userDao.queryByUserNameAndPassword(userName, password); if(user != null) { return user.getUserName(); } else { return null; } }UserAction
public String execute() throws Exception {
if (isInvalid(user.getUserName())) { this.addFieldError("uid", "登录ID不能为空"); return INPUT;
} if (isInvalid(user.getPassword())) { this.addFieldError("password", "密码项不能为空"); return INPUT; }
String uname = userService.isLogin(user.getUserName(), user.getPassword()); if (uname != null) { Map session = ActionContext.getContext().getSession(); session.put("uname", uname); session.put("uid", user.getUid()); return SUCCESS; } else { this.addFieldError("idorpassword", "用户名或密码错误"); return INPUT; } }
private boolean isInvalid(String userName) {
// TODO Auto-generated method stub
return false;
}不够写了 在下面
public User queryByUserNameAndPassword(String userName, String password) throws Exception;}UserDaopublic User queryByUserNameAndPassword(String userName, String password)
throws Exception {
String hql = "FROM User as u WHERE u.userName=? and u.password=?"; String[] str = new String[] {userName, password}; List<User> users = this.getHibernateTemplate().find(hql, str); if (users != null && users.size() >= 1) { return users.get(1); } else { return null; }
}IUserService public String isLogin(String userName, String password) throws Exception;userServicepublic String isLogin(String userName, String password) throws Exception {
User user = userDao.queryByUserNameAndPassword(userName, password); if(user != null) { return user.getUserName(); } else { return null; } }UserAction
public String execute() throws Exception {
if (isInvalid(user.getUserName())) { this.addFieldError("uid", "登录ID不能为空"); return INPUT;
} if (isInvalid(user.getPassword())) { this.addFieldError("password", "密码项不能为空"); return INPUT; }
String uname = userService.isLogin(user.getUserName(), user.getPassword()); if (uname != null) { Map session = ActionContext.getContext().getSession(); session.put("uname", uname); session.put("uid", user.getUid()); return SUCCESS; } else { this.addFieldError("idorpassword", "用户名或密码错误"); return INPUT; } }
private boolean isInvalid(String userName) {
// TODO Auto-generated method stub
return false;
}不够写了 在下面
<package name="CDCLims" extends="struts-default">
<action name="login" class="userAction">
<result>/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
spring的配置文件<bean id="userDao" class="com.dao.impl.UserDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="userService" class="com.service.impl.UserService">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userAction" class="com.action.UserAction">
<property name="userService" ref="userService"></property>
</bean><s:form action="login" method="post">
<s:textfield label="用户名" name="user.userName" tooltip="ENTER YOUR userName"></s:textfield>
<s:textfield label="密码" name="user.password" tooltip="enter Your password"></s:textfield>
<s:submit value="submit"></s:submit>
报的错是:
Unable to instantiate Action, userAction, defined for 'login' in namespace '/'userAction
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:306)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:387)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:458)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)root causejava.lang.ClassNotFoundException: userAction
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:146)
com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:96)
com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:206)
com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:128)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:287)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:387)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:458)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
<bean id="userAction" class="com.action.UserAction">
<property name="userService" ref="userService"></property>
</bean>不能这样注入action的吧
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
</bean>
把这个加上
<bean id="/userAction" class="com.action.UserAction">
<property name="userService" ref="userService"></property>
</bean>
这是对struts1.0来说 是这样的 2.0不需要写/
行不行试一下不就知道
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url"
value="jdbc:sqlserver://localhost:1433;databasename=northwind" />
<property name="username" value="sa" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list> <value>com/ssh2/shop/model/po/Categories.hbm.xml</value>
<value>com/ssh2/shop/model/po/Suppliers.hbm.xml</value>
<value>
com/ssh2/shop/model/po/Territories.hbm.xml
</value>
<value>com/ssh2/shop/model/po/Orders.hbm.xml</value>
<value>com/ssh2/shop/model/po/Region.hbm.xml</value>
<value>
com/ssh2/shop/model/po/CustomerCustomerDemo.hbm.xml
</value>
<value>com/ssh2/shop/model/po/Shippers.hbm.xml</value>
<value>
com/ssh2/shop/model/po/CustomerDemographics.hbm.xml
</value>
<value>com/ssh2/shop/model/po/Products.hbm.xml</value>
<value>
com/ssh2/shop/model/po/EmployeeTerritories.hbm.xml
</value>
<value>com/ssh2/shop/model/po/Customers.hbm.xml</value>
<value>com/ssh2/shop/model/po/Employees.hbm.xml</value>
<value>
com/ssh2/shop/model/po/OrderDetails.hbm.xml
</value>
</list>
</property>
</bean>
<!-- 注解事务生效 使用tx事务的命名空间 -->
<tx:annotation-driven transaction-manager="txManager" />
<!-- 定义受事务管理的数据源 -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- dao -->
<bean id="proddao" class="com.ssh2.shop.base.GenericHibernateDao">
<constructor-arg index="0" value="com.ssh2.shop.model.po.Products" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="orderdao"
class="com.ssh2.shop.base.GenericHibernateDao">
<constructor-arg index="0" value="com.ssh2.shop.model.po.Orders" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="custdao" class="com.ssh2.shop.base.GenericHibernateDao">
<constructor-arg index="0"
value="com.ssh2.shop.model.po.Customers" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="orderdetaildao"
class="com.ssh2.shop.base.GenericHibernateDao">
<constructor-arg index="0"
value="com.ssh2.shop.model.po.OrderDetails" />
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- service -->
<bean id="prodservice"
class="com.ssh2.shop.service.impl.ProductsServiceImpl">
<property name="proddao" ref="proddao" />
</bean>
<bean id="orderservice"
class="com.ssh2.shop.service.impl.OrdersServiceImpl">
<property name="orderdao" ref="orderdao" />
<property name="orderdetaildao" ref="orderdetaildao" />
</bean>
<bean id="custservice"
class="com.ssh2.shop.service.impl.CustomersServiceImpl">
<property name="customerdao" ref="custdao" />
</bean>
<!-- baseaction -->
<bean id="baseaction" abstract="true">
<property name="ps" ref="prodservice" />
<property name="os" ref="orderservice" />
<property name="cs" ref="custservice"></property>
</bean>
<!-- Action -->
<bean id="shopaction" class="com.ssh2.shop.presentation.ShopAction"
parent="baseaction" scope="prototype">
</bean>
</beans>
我回到家里建了个表就叫users 然后按照同样的方法做就没有错 。有点摸不到头绪!
opensymphony.webwork.dispatcher.ServletDispatcher-Could not find action