只需要你三個JAVA類和兩個配置文件,就可以完成你的MVC應用,我們就做一個示例吧。
本文以一個登錄為例。
第一個JAVA文件
/**============================================================
?*?版權:?Antbee?版權所有?(c)?2002?-?2006
?*?文件:?com.antbee.sysmanage.login.action.UserAction
?*?所含類:?UserAction
?*?修改記錄:
?*?日期????????????????作者????????????????內容
?*?=============================================================
?*?2006-8-28????????????和巍雅?????????????建立文件
?*?============================================================*/
package?com.antbee.sysmanage.login.action;
import?java.util.List;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?javax.servlet.http.HttpSession;
import?org.apache.struts.action.ActionForm;
import?org.apache.struts.action.ActionForward;
import?org.apache.struts.action.ActionMapping;
import?org.apache.struts.actions.DispatchAction;
import?org.apache.struts.validator.DynaValidatorForm;
import?com.antbee.hibernate.model.AirlineUserInformation;
import?com.antbee.sysmanage.login.dao.UserDAO;
/**
?*?<p>
?*?</p>
?*
?*?<p>
?*?Copyright:?版權所有?(c)?2002?-?2006
?*?</p>
?*?<p>
?*?Company:?antbee
?*?</p>
?*
?*?@author?@家軍
?*?@version?1.0
?*/
public?class?UserAction?extends?DispatchAction?{
????//?依賴注入
????private?UserDAO?userDAO;
????public?UserDAO?getUserDAO()?{
????????return?userDAO;
????}
????public?void?setUserDAO(UserDAO?userDAO)?{
????????this.userDAO?=?userDAO;
????}????????
????/**
?????*
?????*?用戶登錄
?????*
?????*?@param
?????*?@return
?????*?@throws
?????*/
????public?ActionForward?Login(ActionMapping?mapping,?ActionForm?form,
????????????HttpServletRequest?request,?HttpServletResponse?response)
????????????throws?Exception?{
????????HttpSession?session?=?request.getSession();
????????DynaValidatorForm?LoginActionForm?=?(DynaValidatorForm)?form;
????????AirlineUserInformation?User?=?(AirlineUserInformation)?LoginActionForm
????????????????.get("User");
????????if?(User?!=?null)?{
????????????String?MDpwd?=?CommonTools.encrypt(User.getPassword());
????????????if?(userDAO.Login(User.getLoginName(),?MDpwd))?{
????????????????//?成功登錄
????????????????//?加載一些session
????????????????AirlineUserInformation?LegalUser?=?userDAO.GetUser(User
????????????????????????.getLoginName());
????????????????String?LoginName?=?LegalUser.getLoginName();
????????????????String?UserName?=?LegalUser.getUserName();
????????????????String?UserId?=?LegalUser.getUserId().toString();
????????????????String?UserType?=?LegalUser.getUserType().toString();
????????????????String?DeptId?=?LegalUser.getAirlineDepartmentInformation()
????????????????????????.getDepartmentId().toString();
????????????????String?DeptName?=?LegalUser.getAirlineDepartmentInformation().getDepartmentName();
????????????????String?RoleId?=?LegalUser.getSysRoleInfo().getRoleId()
????????????????????????.toString();
????????????????session.setAttribute("LoginName",?LoginName);//?登錄名
????????????????session.setAttribute("UserName",?UserName);//?用戶姓名
????????????????session.setAttribute("UserId",?UserId);//?用戶ID
????????????????session.setAttribute("DeptId",?DeptId);//?部門ID
????????????????session.setAttribute("DeptName",?DeptName);//?部門DeptName
????????????????session.setAttribute("UserType",?UserType);//?用戶類別
????????????????session.setAttribute("RoleId",?RoleId);//?角色ID
????????????????return?mapping.findForward("Comein");
????????????}
????????}
????????request.setAttribute("UserMsg",?"User.LawLess");
????????return?mapping.findForward("Fail");
????}
????/**
?????*
?????*?用戶退出
?????*
?????*?@param
?????*?@return
?????*?@throws
?????*/
????public?ActionForward?LogOut(ActionMapping?mapping,?ActionForm?form,
????????????HttpServletRequest?request,?HttpServletResponse?response)
????????????throws?Exception?{
????????HttpSession?session?=?request.getSession();
????????session.removeAttribute("LoginName");//?登錄名
????????session.removeAttribute("UserName");//?用戶姓名
????????session.removeAttribute("UserId");//?用戶ID
????????session.removeAttribute("DeptId");//?部門ID
????????session.removeAttribute("UserType");//?用戶類別
????????session.removeAttribute("RoleId");//?角色ID
????????session.invalidate();//?控件無效
????????return?mapping.findForward("LogOut");
????}
第二個JAVA文件:
/**============================================================
?*?版權:?antbee?版權所有?(c)?2002?-?2006
?*?文件:?com.antbee.kams.sysmanage.login.dao.UserDAO
?*?所含類:?IUserDAO
?*?修改記錄:
?*?日期????????????????作者????????????????內容
?*?=============================================================
?*?2006-8-28???????????@家軍?????????????建立文件
?*?============================================================*/
package?com.antbee.sysmanage.login.dao;
import?java.util.List;
import?com.antbee.hibernate.model.AirlineUserInformation;
/**
?*?<p></p>
?*
?*?<p>Copyright:?版權所有?(c)?2002?-?2006</p>
?*?<p>Company:?antbee</p>
?*
?*?@author?@家軍
?*?@version?1.0
?*/
public?interface?UserDAO?{
????//用戶登錄 如果是正確的用戶名/密碼,則返回true,否則返回false
????public?boolean?Login(String?UserName,String?PassWord);
????//取得用戶信息
????public?AirlineUserInformation?GetUser(String?LoginName);
}
第三個JAVA文件;
/**============================================================
?*?版權:?antbee?版權所有?(c)?2002?-?2006
?*?文件:?com.antbee.sysmanage.login.dao.hibernate.UserDAOImpl
?*?所含類:?UserDAOImpl
?*?修改記錄:
?*?日期????????????????作者????????????????內容
?*?=============================================================
?*?2006-8-28????????????@家軍?????????????建立文件
?*?============================================================*/
package?com.antbee.sysmanage.login.dao.hibernate;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.Comparator;
import?java.util.Iterator;
import?java.util.List;
import?java.util.Set;
import?org.springframework.orm.ObjectRetrievalFailureException;
import?org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import?com.antbee.hibernate.model.AirlineUserInformation;
import?com.travelsky.kams.sysmanage.login.dao.UserDAO;
/**
?*?<p>
?*?</p>
?*
?*?<p>
?*?Copyright:?版權所有?(c)?2002?-?2006
?*?</p>
?*?<p>
?*?Company:?antbee
?*?</p>
?*
?*?@author?Administrator
?*?@version?1.0
?*/
public?class?UserDAOImpl?extends?HibernateDaoSupport?implements?UserDAO?{
????/*
?????*?(非?Javadoc)
?????*
?????*?@see?com.travelsky.kams.sysmanage.login.dao.IUserDAO#Login(java.lang.String,
?????*??????java.lang.String)?用戶登錄?如果是正確的用戶名/密碼,則返回true,否則返回false
?????*/
????public?boolean?Login(String?UserName,?String?PassWord)?{
????????//?TODO?Auto-generated?method?stub
????????String?finduser?=?"from?AirlineUserInformation?as?user?where?user.loginName='"
????????????????+?UserName?+?"'?and?user.password='"?+?PassWord?+?"'";
????????List?Lfinduser?=?this.getHibernateTemplate().find(finduser);
????????if?(Lfinduser.size()?>=?1)?{
????????????return?true;
????????}
????????return?false;
????}
????/*
?????*?(非?Javadoc)
?????*
?????*?@see?com.travelsky.kams.sysmanage.login.dao.IUserDAO#Login(java.lang.String,
?????*??????java.lang.String)?取得用戶信息
?????*/
????public?AirlineUserInformation?GetUser(String?LoginName)?{
????????//?TODO?Auto-generated?method?stub
????????AirlineUserInformation?user?=?null;
????????String?finduser?=?"from?AirlineUserInformation?as?user?where?user.loginName='"
????????????????+?LoginName?+?"'";
????????List?Lfinduser?=?this.getHibernateTemplate().find(finduser);
????????if?(Lfinduser.size()?>=?1)?{
????????????user?=?(AirlineUserInformation)?Lfinduser.get(0);
????????}?else?{
????????????throw?new?ObjectRetrievalFailureException(
????????????????????AirlineUserInformation.class,?LoginName);
????????}
????????return?user;
????}
}
兩個配置文件,
第一個struts-config.xml
<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?struts-config?PUBLIC?"-//Apache?Software?Foundation//DTD?Struts?Configuration?1.2//EN"?"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
????<data-sources?/>
????<!--?動態驗證FORM??-->
????<form-beans>
????????<form-bean?name="LoginActionForm"
????????????type="org.apache.struts.validator.DynaValidatorForm">
????????????<form-property?name="User"
????????????????type="com.antbee.hibernate.model.AirlineUserInformation"?/>
????????</form-bean>
????</form-beans>
????<!--?全局異常?-->
????<global-exceptions>
????????<exception?key="error.required"
????????????type="org.springframework.dao.DataAccessException"
????????????path="/dataAccessFailure.jsp"?/>
????</global-exceptions>
????<!--?全局轉向?-->
????<global-forwards>
????????<!--?所有非法用戶返回登錄頁面??-->
????????<forward?name="LoginGo"?path="/User.do?method=LogOut"></forward>
????????<!--?業務規則出錯信息提示??-->
????????<forward?name="Fail"?path="/jsp/common/failed.jsp"></forward>
????</global-forwards>
????<!--?分發控制?-->
????<action-mappings>
????????<action?path="/User"
????????????type="org.springframework.web.struts.DelegatingActionProxy"
????????????name="LoginActionForm"?scope="request"?parameter="method"
????????????validate="false">
????????????<forward?name="UserMenu"?path="/jsp/leftMenu.jsp"?/>
????????????<forward?name="Comein"?path="/jsp/index.jsp"?/>
????????????<forward?name="LogOut"?path="/login.jsp"?/>
????????</action>????????
????</action-mappings>
????<!--?資源文件?-->
????<message-resources?parameter="resources.ApplicationResources"?/>
????<!--?使用Spring控制事務?-->
????<plug-in
????????className="org.springframework.web.struts.ContextLoaderPlugIn">
????????<set-property?property="contextConfigLocation"
????????????value="classpath:applicationContext.xml"?/>
????</plug-in>
????<!--?使用表單驗證共同類validator?-->
????<plug-in?className="org.apache.struts.validator.ValidatorPlugIn">
????????<set-property?property="pathnames"
????????????value="/WEB-INF/validator-rules.xml,?/WEB-INF/validation.xml"?/>
????</plug-in>
</struts-config>
第二個XML文件:
applicationContext.xml
<?xml?version="1.0"?encoding="UTF-8"?>
<!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
????<!--Start?of?Session?Factory?-->
????<bean?id="SessionFactory"
????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
????????<property?name="configLocation">
????????????<value>classpath:hibernate.cfg.xml</value>
????????</property>
????????<property?name="hibernateProperties">
????????????<props>
????????????????<prop?key="connection.provider_class">
????????????????????org.hibernate.connection.ProxoolConnectionProvider
????????????????</prop>
????????????????<prop?key="hibernate.dialect">
????????????????????org.hibernate.dialect.Oracle9Dialect
????????????????</prop>
????????????</props>
????????</property>
????</bean>
????<!--End?of?SessionFactory?-->
????<!--Start?of?TransactionManager?-->
????<bean?id="TransactionManager"
????????class="org.springframework.orm.hibernate3.HibernateTransactionManager"
????????abstract="false"?singleton="true"?lazy-init="default"
????????autowire="default"?dependency-check="default">
????????<property?name="sessionFactory">
????????????<ref?bean="SessionFactory"?/>
????????</property>
????</bean>
????<!--End?of?TransactionManager?-->
????<!--?基本的DAO?BEGIN-->
????<bean?id="BaseTransactionProxy"
????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
????????abstract="true">
????????<property?name="transactionManager">
????????????<ref?bean="TransactionManager"?/>
????????</property>
????????<property?name="proxyTargetClass">
????????????<value>true</value>
????????</property>
????????<property?name="transactionAttributes">
????????????<props>
????????????????<prop?key="save*">PROPAGATION_REQUIRED</prop>
????????????????<prop?key="remove*">PROPAGATION_REQUIRED</prop>
????????????????<prop?key="*">PROPAGATION_REQUIRED</prop>
????????????</props>
????????</property>
????</bean>
????<!--?基本的DAO?END?-->
????<!--Start?of?userDAO?-->
????<bean?id="userDAO"
????????class="com.antbee.sysmanage.login.dao.hibernate.UserDAOImpl">
????????<property?name="sessionFactory">
????????????<ref?local="SessionFactory"?/>
????????</property>
????</bean>
????<bean?id="userDAOProxy"?parent="BaseTransactionProxy"
????????class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
????????<property?name="target">
????????????<ref?local="userDAO"?/>
????????</property>
????</bean>
????<!--End?of?userDAO?-->
????????????????
????<!--Start?of?UserAction?-->
????<bean?name="/User"
????????class="com.antbee.sysmanage.login.action.UserAction"?singleton="false">
????????<property?name="userDAO">
????????????<ref?bean="userDAOProxy"?/>
????????</property>
????</bean>
????<!--End?of?AddUserAction?-->
</beans>
其它的POJO使用myeclise插件就會自動生成。
呵呵是不是開發很簡單呢,能夠節省你多少的工作量呀,如果有興趣的同志可以共同探討。