SSH(struts+spring+hibernate)迅速开发--第六章 用户登陆和注册(5)

i)             

2.       编写注册和登陆用的ActionFormAction

i)            编写LoginForm.java

在登陆界面中,页面到后台逻辑,我们只需要传递用户名和密码信息,另外附加一个相关的提示信息,所以我们在LoginForm里面,只需要这三个属性,代码如下 :

/*

 * Generated by MyEclipse Struts

 * Template path: templates/java/JavaClass.vtl

 */

package cn.com.book.demo.struts.form;

 

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.validator.ValidatorForm;

 

/**

 * MyEclipse Struts

 * Creation date: 12-08-2007

 *

 * XDoclet definition:

 * @struts.form name="loginForm"

 */

public class LoginForm extends ValidatorForm {

      private String userName;  // 用户名

      private String password;  // 密码

      private String message;   // 操作提示信息

      /*

       * Generated Methods

       */

 

      public String getMessage() {

             return message;

      }

 

      public void setMessage(String message) {

             this.message = message;

      }

 

      public String getPassword() {

             return password;

      }

 

      public void setPassword(String password) {

             this.password = password;

      }

 

      public String getUserName() {

             return userName;

      }

 

      public void setUserName(String userName) {

             this.userName = userName;

      }

 

      /**

       * Method validate

       * @param mapping

       * @param request

       * @return ActionErrors

       */

      public ActionErrors validate(ActionMapping mapping,

                    HttpServletRequest request) {

             // TODO Auto-generated method stub

             return null;

      }

 

      /**

       * Method reset

       * @param mapping

       * @param request

       */

      public void reset(ActionMapping mapping, HttpServletRequest request) {

             // TODO Auto-generated method stub

      }

}

查看上面代码清单我们会发现,LoginForm不是继承ActionForm,而是基础ValidatorForm来的.

一般来说是需要继承ActionForm对象的,只是我们这里需要对Form的属性进行相关的验证,并且会在接下来的部分,会介绍怎么样使用StrutsForm校验框架,所以我们这里就干脆继承ValidatorForm.

下面的RegisterForm也是同样原因,基础ValidatorForm.

ii)           编写RegisterForm.java

在注册页面和后台逻辑中,我们需要传递用户名,密码,姓名,email,电话,还有操作的提示信息,所以我们在RegisterForm,定义了这些属性,代码如下 :

/*

 * Generated by MyEclipse Struts

 * Template path: templates/java/JavaClass.vtl

 */

package cn.com.book.demo.struts.form;

 

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.validator.ValidatorForm;

 

/**

 * MyEclipse Struts

 * Creation date: 12-08-2007

 *

 * XDoclet definition:

 * @struts.form name="registerForm"

 */

public class RegisterForm extends ValidatorForm {

      private String userName;  // 用户名

      private String password;  // 密码

      private String name;      // 姓名

      private String email;     // 邮件地址

      private String phone;     // 电话

      private String message;   // 操作提示信息

      /*

       * Generated Methods

       */

 

      public String getEmail() {

             return email;

      }

 

      public void setEmail(String email) {

             this.email = email;

      }

 

      public String getMessage() {

             return message;

      }

 

      public void setMessage(String message) {

             this.message = message;

      }

 

      public String getName() {

             return name;

      }

 

      public void setName(String name) {

             this.name = name;

      }

 

      public String getPassword() {

             return password;

      }

 

      public void setPassword(String password) {

             this.password = password;

      }

 

      public String getPhone() {

             return phone;

      }

 

      public void setPhone(String phone) {

             this.phone = phone;

      }

 

      public String getUserName() {

             return userName;

      }

 

      public void setUserName(String userName) {

             this.userName = userName;

      }

 

      /**

       * Method validate

       * @param mapping

       * @param request

       * @return ActionErrors

       */

      public ActionErrors validate(ActionMapping mapping,

                    HttpServletRequest request) {

             // TODO Auto-generated method stub

             return null;

      }

 

      /**

       * Method reset

       * @param mapping

       * @param request

       */

      public void reset(ActionMapping mapping, HttpServletRequest request) {

             // TODO Auto-generated method stub

      }

}

 
下面是整合的的步骤 spring整合hibernate 加入jar包 加入spring和aop所需必须包 加入hibernate的必须包 spring整合hibernate的必须包 org.springframework.jdbc-3.1.3.RELEASE.jar org.springframework.orm-3.1.3.RELEASE.jar org.springframework.transaction-3.1.3.RELEASE.jar 加入配置文件 加入spring的配置文件 加入hibernate的配置文件 加入配置代码 加入对SessionFactory的配置 加入数据源(DataSource)的配置 <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> 加入SessionFactory的配置 <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <!-- 配置session factory使用的数据源 --> <property name="dataSource" ref="dataSource" /> <!-- 配置使用hibernate的配置文件 --> <!--<property name="configLocation" value="classpath*:hibernate.cfg.xml" /> --> <!-- 无需写hibernate的配置文件,而是将hibernate的配置直接加入到spring配置文件中 配置hibernate的映射文件地址 --> <property name="mappingResources"> <list> <value>com/direct/domain/Employee.hbm.xml</value> <value>com/direct/domain/Log.hbm.xml</value> </list> </property> <!-- 配置hibernate的其他属性 --> <property name="hibernateProperties"> <map> <entry key="dialect" value="org.hibernate.dialect.MySQL5Dialect" /> <entry key="show_sql" value="true" /> <entry key="format_sql" value="true" /> <entry key="current_session_context_class" value="thread" /> </map> </property> </bean> 加入事务管理切面类的配置 <!-- 创建事务管理器(spring针对hibernate实现的事务管理的切面类) --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 事务的通知类型 --> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="*" read-only="true" /> <!-- 或者 <tx:method name="*list*" read-only="true"/> <tx:method name="*get*" read-only="true"/> <tx:method name="*" propagation="REQUIRED"/> --> </tx:attributes> </tx:advice> 将切面类应用到切入点上 <!-- 将事务管理规则的切面应用到对应的切入点 --> <aop:config> <aop:pointcut expression="execution(* com.direct.service.*.*(..))" id="transactionPointCut"/> <aop:advisor advice-ref="transactionAdvice" pointcut-ref="transactionPointCut"/> </aop:config> springstruts2的整合 加入整合包 加入struts的必须包 struts整合spring的包 struts2-spring-plugin-2.3.15.3.jar spring整合struts的包 org.springframework.web-3.1.3.RELEASE.jar org.springframework.web.servlet-3.1.3.RELEASE.jar org.springframework.web.struts-3.1.3.RELEASE.jar 加入struts的配置文件struts.xml 在web.xml中配置struts <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 在web.xml配置spring <!-- 配置spring的配置文件的位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext-*.xml</param-value> </context-param> <!-- 配置spring随web容器启动时就创建 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 在struts.xml中配置对象创建工具为spring <constant name="struts.objectFactory" value="spring" />
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值