简单的SSH入门

在这里我共享一下SSH构架的一点入门的(基础的)东西。也许对你能有帮助。

开始建立项目以及加入SSH各部分功能就略过了。。。

这里有Spring所需要添加的功能代码,Action的操作代码,form里的验证代码。以及Struts里的代码。

由于时间原因无法重新制作,且做贴图,我将项目上传到资源。。

Spring中的代码:

<bean name="/register"
  class="com.yourcompany.struts.action.RegisterAction">
  <property name="dao">
   <ref bean="SshUserDAOProxy" />
  </property>
 </bean>
<bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="configLocation"
   value="classpath:hibernate.cfg.xml">
  </property>
 </bean>

 

<bean id="transactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref local="sessionFactory" />
  </property>
 </bean>
 <bean id="SshUserDAOProxy"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
  <property name="proxyTargetClass">
   <value>true</value>
  </property>

  <property name="transactionManager">

   <ref bean="transactionManager" />
  </property>

  <property name="target">
   <ref local="SshUserDAO" />
  </property>

  <property name="transactionAttributes">
   <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
   </props>
  </property>
 </bean>

这里将hibernate和Struts整合到了Spring。

 

  public ActionErrors validate(ActionMapping mapping,
   HttpServletRequest request) {
  ActionErrors errors = new ActionErrors();
  if (username.trim().equals("")) {
   errors.add("username", new ActionError(
     "errors.username_is_required"));
  }
  if (password.trim().equals("")) {
   errors.add("password", new ActionError(
     "errors.password_is_required"));
  }
   if(!password2.trim().equals(password)){
   errors.add("password2", new ActionError("errors.not_format_pasw1"));
   }
  if (nickname.trim().equals("")) {
   errors.add("nickname", new ActionError(
     "errors.nickname_is_required"));
  }
  if (email.indexOf("@") == -1 || email.indexOf(".") == -1 ) {
   errors.add("email", new ActionError("errors.email_is_wrong"));
  }
  if (phone.trim().length() < 11) {
   //if (phone.matches("//D")) {
    //if (phone.trim().equals("")) {
     {
      errors.add("phone", new ActionError(
        "errors.phone_is_required_or_wrong"));
     //}
    }
   //}
  }
  return errors;
 }
以上是Form中验证的Errors。

这里是Action中注册的代码:

 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  RegisterForm registerForm = (RegisterForm) form;// TODO Auto-generated
              // method stub
  SshUser user = new SshUser();
  user.setUsername(registerForm.getUsername());
  user.setPassword(registerForm.getPassword());
  user.setEmail(registerForm.getEmail());
  user.setNickname(registerForm.getNickname());
  user.setMark(registerForm.getMark());
  user.setPhone(registerForm.getPhone());
  SshUserDAO dao = getDao();
  
  List users = (List) dao.findByUsername(user.getUsername());
  if (users.size() > 0) {
   return mapping.findForward("fail");
  } else {
   dao.save(user);
   // tran.commit();

   return mapping.findForward("success");
  }
 }

注意对应好了Dao和Form。

 

Struts中整合Spring与相应的Action、Form路径等。

<message-resources
  parameter="com.yourcompany.struts.ApplicationResources" />
 <plug-in
  className="org.springframework.web.struts.ContextLoaderPlugIn">
  <set-property property="contextConfigLocation"
   value="/WEB-INF/classes/applicationContext.xml" />
 </plug-in>
<action attribute="registerForm" input="/form/register.jsp"
   name="registerForm" path="/register" scope="request"
   type="org.springframework.web.struts.DelegatingActionProxy">
   <set-property property="cancellable" value="true"/>
   <forward name="fail" path="/login.jsp" />
   <forward name="success" path="/success.jsp" />
  </action>

<form-beans>
  <form-bean name="registerForm"
   type="com.yourcompany.struts.form.RegisterForm" />

<form-beans>

还有一个要注意的地方就是hibernate映射文件里要改其id属性,一般改为increment。佛则加入数据时出现错误。

同时我上传了此项目的代码。JDK1.6,Tomcat5.0 ,Spring2.0,Hibernate3.1.Struts1.2.

上传后的项目有所不同加入了Email功能,有兴趣者可以参考。http://download.csdn.net/source/453752

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值