WEB2.0開發

          心態決定行為,行為決定習慣,習慣決定命運

          Struts+Spring+Hibernate練習(完整)


          public interface UserDAO {

          public abstract boolean isValidUser(String username, String password);

          }

          UserDAOImp.java

          import java.util.List;

          import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

          import com.test.Hibernate.SessionFactory;

          public class UserDAOImp extends HibernateDaoSupport implements UserDAO {

          private SessionFactory sessionFactory;

          private static String hql = "from User u where u.username=? ";

          public boolean isValidUser(String username, String password) {

          List userList = this.getHibernateTemplate().find(hql, username);

          if (userList.size() > 0) {

          return true;

          }

          return false;

          }

          }



          修改LoginAction.java文件,使用userDao的方法來進行用戶驗證

          package com.test.struts.action;


          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;


          import org.apache.struts.action.Action;
          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;
          import org.apache.struts.validator.DynaValidatorForm;


          import com.test.UserDAO;


          public class LoginAction extends Action {


          private UserDAO userDAO;


          public UserDAO getUserDAO() {
          return userDAO;
          }

          public void setUserDAO(UserDAO userDAO) {
          this.userDAO = userDAO;
          }


          public ActionForward execute(ActionMapping mapping, ActionForm form,
          HttpServletRequest request, HttpServletResponse response) {
          DynaValidatorForm loginForm = (DynaValidatorForm) form;
          // TODO Auto-generated method stub
          String username = (String) loginForm.get("username");
          String password = (String) loginForm.get("password");
          loginForm.set("password", null);
          if (userDAO.isValidUser(username,password)) {
          return mapping.findForward("indexGo");
          } else {
          return mapping.getInputForward();
          }
          }

          }
          綠色字體為修改部份


          現在剩下最后的spring配置了

          <?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" destroy-method="close">
          <property name="driverClassName">
          <value>com.mysql.jdbc.Driver</value>
          </property>
          <property name="url">
          <value>jdbc:mysql://localhost/test</value>
          </property>
          <property name="username">
          <value>root</value>
          </property>
          <property name="password">
          <value>root</value>
          </property>
          </bean>


          <!-- 配置sessionFactory, 注意這里引入的包的不同 -->
          <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
          <property name="dataSource">
          <ref local="dataSource" />
          </property>
          <property name="mappingResources">
          <list>
          <value>com/test/Hibernate/User.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 local="sessionFactory" />
          </property>
          </bean>


          <bean id="userDAO" class="com.test.UserDAOImp">
          <property name="sessionFactory">
          <ref local="sessionFactory" />
          </property>
          </bean>


          <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
          <property name="transactionManager">
          <ref bean="transactionManager" />
          </property>
          <property name="target">
          <ref local="userDAO" />
          </property>
          <property name="transactionAttributes">
          <props>
          <prop key="insert*">PROPAGATION_REQUIRED</prop>
          <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
          <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
          </props>
          </property>
          </bean>


          <bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
          <property name="userDAO">
          <ref bean="userDAOProxy" />
          </property>
          </bean>
          </beans>


          現在可以進行測試了!


          在編寫代碼有配置內容時一定要注意 hibernate 和 hibernate3 ,這兩個包的名字就只差一個字,千萬不要有錯,否則找錯誤可是很難的。



          posted on 2006-04-05 12:05 ymx 閱讀(347) 評論(0)  編輯  收藏 所屬分類: StrutsSpringHibernate

          主站蜘蛛池模板: 德惠市| 万年县| 镶黄旗| 淮滨县| 甘南县| 忻城县| 丹阳市| 林甸县| 安岳县| 克山县| 平和县| 美姑县| 吐鲁番市| 鹤峰县| 榆林市| 吴忠市| 汤原县| 老河口市| 会东县| 汕尾市| 田林县| 荥阳市| 临湘市| 榆树市| 曲周县| 绥德县| 峡江县| 长岭县| 临清市| 宁河县| 新龙县| 成武县| 邢台市| 沈丘县| 五常市| 威远县| 容城县| 满洲里市| 蓬溪县| 新巴尔虎左旗| 湘潭市|