<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE劍俠行

    直覺我的J2EE應用生涯,打造我心中的一把利劍。

    常用鏈接

    統計

    技術鏈接

    最新評論

    史上最簡單的struts+spring+hibernate配置實例[修訂版]

    本文不關心必須的JAR包,這個東東在網上能夠找到很多,本文只關心如何配置,才能夠讓STRUTS SPRING HIBERNATE和MYSQL相關連。
    開發環境:wsad5.1
    Spring-Version: 1.1.4
    Struts Framework 1.1
    Hibernate-Version: 2.1.7

    <web.xml>
    ---------------------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app id="WebApp">
    <display-name>MVC_BPEL_MODELWeb</display-name>
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/Hibernate_Context.xml</param-value>
    </context-param>
    <servlet>
    <servlet-name>SpringContextServlet</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>config</param-name>
    <param-value>WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>validate</param-name>
    <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
    </taglib>

    </web-app>
    -----------------------------------
    <action-servlet.xml>
    ----------------------------------------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>
    <bean name="/User" class="com.yaya.action.UserAction" singleton="false">
    <property name="userManager">
    <ref bean="userManager" />
    </property>
    </bean>


    </beans>
    -------------------------------------------------------------------
    <hibernate_context.xml>
    --------------------------------------------------------------------
    <?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="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
    <property name="prefix"><value>/WEB-INF/jsp/</value></property>
    <property name="suffix"><value>.jsp</value></property>
    </bean> -->
    <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/pdm</value>
    </property>

    <property name="username">
    <value>root</value>
    </property>

    <property name="password">
    <value></value>
    </property>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">

    <property name="dataSource">
    <ref local="dataSource" />
    </property>

    <property name="mappingResources">
    <list>
    <value>hbm_tb/TSysuser.hbm.xml</value>
    </list>
    </property>

    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">

    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean>


    <!-- Spring的數據訪問異常轉換器(Data Access Exception Translator)定義 -->
    <bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    </bean>

    <bean id="userDao" class="com.yaya.service.dao.hibernate.UserHibernateDao">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    </bean>

    <bean id="userManagerTarget" class="com.yaya.service.spring.UserManagerImpl">
    <property name="userDao">
    <ref local="userDao" />
    </property>
    </bean>


    <bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager">
    <ref bean="transactionManager" />
    </property>

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

    <property name="proxyTargetClass">
    <value>true</value>
    </property>
    <property name="transactionAttributes">
    <props>
    <prop key="save*">PROPAGATION_REQUIRED</prop>
    <prop key="find*">PROPAGATION_REQUIRED</prop>
    <prop key="remove*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
    </props>
    </property>
    </bean>


    </beans>-------------------------------------------------------------------
    <struts-config.xml>
    -------------------------------------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

    <struts-config>

    <!-- 數據源 -->
    <data-sources></data-sources>

    <!-- 表單 Bean -->
    <form-beans>
    <form-bean name="UserActionForm" type="org.apache.struts.validator.DynaValidatorForm">
    <form-property name="user" type="com.yaya.hb.TSysuser" />
    </form-bean>
    </form-beans>

    <!-- 全局異常 -->
    <global-exceptions></global-exceptions>

    <!-- 全局轉發 -->
    <global-forwards></global-forwards>

    <!-- 操作映射 -->
    <action-mappings>
    <action path="/User" type="org.springframework.web.struts.DelegatingActionProxy"
    name="UserActionForm" scope="request" parameter="method" validate="false">
    <forward name="list" path="/userlist.jsp" />
    <forward name="edit" path="/userform.jsp" />
    </action>

    </action-mappings>

    <!-- 消息資源 -->
    <message-resources parameter="mvc_bpel_modelweb.resources.ApplicationResources" />
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" />
    </plug-in>
    <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>
    ------------------------------------------------------------------
    UserHibernateDao.java
    ------------------------------------------------------------------
    /*
    * 創建日期 2005-4-7
    *
    * 更改所生成文件模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    package com.yaya.service.dao.hibernate;

    import java.util.List;

    import org.springframework.orm.ObjectRetrievalFailureException;
    import org.springframework.orm.hibernate.support.HibernateDaoSupport;
    import net.sf.hibernate.HibernateException;

    import com.yaya.hb.TSysuser;
    import com.yaya.service.dao.IUserDao;
    import java.util.List;

    import org.apache.commons.logging.Log;

    import org.apache.commons.logging.LogFactory;

    /**
    * @author Administrator
    *
    * 更改所生成類型注釋的模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    public class UserHibernateDao extends HibernateDaoSupport implements IUserDao {

    private Log log = LogFactory.getLog(UserHibernateDao.class);

    /* (非 Javadoc)

    * @see com.jandar.dao.IUserDAO#getUsers()

    */

    public List getUsers() {

    return getHibernateTemplate().find("from TSysuser");

    }

    /* (非 Javadoc)

    * @see com.jandar.dao.IUserDAO#getUser(java.lang.Long)

    */

    public TSysuser getUser(String username) {

    // TODO 自動生成方法存根
    if (this.getHibernateTemplate() == null)
    {
    System.out.println("error at there");
    return null;

    }
    TSysuser user = (TSysuser) getHibernateTemplate().get(TSysuser.class,username);
    //TSysuser user = (TSysuser) getHibernateTemplate().find("from TSysuser users where users.username = 'admin'",username);
    if (user == null) {
    throw new ObjectRetrievalFailureException(TSysuser.class, username);
    }
    return user;


    //String msg = getHibernateTemplate().get(TSysuser.class,username).toString();

    //TSysuser user = (TSysuser) getHibernateTemplate().find("from TSysuser where username = ?",username);
    //System.out.println(user.getUserdesc());
    //System.out.println(user.getHeadship());

    //return user;
    }

    /* (非 Javadoc)

    * @see com.jandar.dao.IUserDAO#saveUser(com.jandar.model.User)

    */

    public void saveUser(TSysuser user) {

    log.debug("xxxxxxx");

    System.out.println("yyyy");

    getHibernateTemplate().saveOrUpdate(user);

    if (log.isDebugEnabled()) {

    log.debug("username set to " + user.getUsername());

    }

    }

    /* (非 Javadoc)

    * @see com.jandar.dao.IUserDAO#removeUser(java.lang.Long)

    */

    public void removeUser(String username) {

    Object user = getHibernateTemplate().load(TSysuser.class, username);

    getHibernateTemplate().delete(user);

    if (log.isDebugEnabled()) {

    log.debug("del user " + username);

    }

    }

    }
    -------------------------------------------------------------------
    useraction.java
    --------------------------------------------------------------------
    /*
    * 創建日期 2005-4-11
    *
    * 更改所生成文件模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    package com.yaya.action;

    import java.util.Date;

    import org.apache.struts.actions.DispatchAction;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
    import org.apache.struts.action.ActionMessages;
    import org.apache.struts.action.DynaActionForm;
    import org.apache.struts.util.MessageResources;

    import com.opensymphony.user.User;
    import com.yaya.axis.SpringBeanProvider;
    import com.yaya.hb.TSysuser;
    import com.yaya.service.spring.UserManagerImpl;
    /**
    * @author Administrator
    *
    * 更改所生成類型注釋的模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    public class UserAction extends DispatchAction {

    private static Log log = LogFactory.getLog(UserAction.class);
    private UserManagerImpl mgr = null;
    public void setUserManager(UserManagerImpl userManager) {
    this.mgr = userManager;
    }

    public ActionForward delete(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    if (log.isDebugEnabled()) {
    log.debug("entering 'delete' method...");
    }
    mgr.removeUser(request.getParameter("user.username"));
    ActionMessages messages = new ActionMessages();
    messages.add(
    ActionMessages.GLOBAL_MESSAGE,
    new ActionMessage("user.deleted"));
    saveMessages(request, messages);
    return list(mapping, form, request, response);
    }

    public ActionForward edit(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    if (log.isDebugEnabled()) {
    log.debug("entering 'edit' method...");
    }

    DynaActionForm UserActionForm = (DynaActionForm) form;
    String username = request.getParameter("username");

    // null userId indicates an add
    if (username != null) {
    try
    {
    TSysuser user = mgr.getUser(username);
    if (user == null) {
    ActionMessages errors = new ActionMessages();
    errors.add(
    ActionMessages.GLOBAL_MESSAGE,
    new ActionMessage("user.missing"));
    saveErrors(request, (ActionErrors) errors);
    return mapping.findForward("list");
    }
    UserActionForm.set("user",user);
    //request.setAttribute("user",user);
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }

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

    public ActionForward list(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    if (log.isDebugEnabled()) {
    log.debug("entering 'list' method...");
    }
    request.setAttribute("users", mgr.getUsers());
    return mapping.findForward("list");
    }

    public ActionForward save(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    if (log.isDebugEnabled()) {
    log.debug("entering 'save' method...");
    }

    if (isCancelled(request)) {
    return list(mapping, form, request, response);
    }

    // run validation rules on this form
    ActionMessages errors = form.validate(mapping, request);

    if (!errors.isEmpty()) {
    saveErrors(request, (ActionErrors) errors);

    return mapping.findForward("edit");
    }
    DynaActionForm UserActionForm = (DynaActionForm) form;
    TSysuser user = (TSysuser) UserActionForm.get("user");

    mgr.saveUser(user);

    ActionMessages messages = new ActionMessages();
    messages.add(ActionMessages.GLOBAL_MESSAGE,
    new ActionMessage("user.saved", user.getUsername()));
    //saveMessages((HttpServletRequest) request.getSession(), messages);

    return mapping.findForward("list");
    }

    public ActionForward unspecified(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    return list(mapping, form, request, response);
    }

    }

    -------------------------------------------------------------------
    UserActionForm.java
    -------------------------------------------------------------------
    /*
    * 創建日期 2005-3-29
    *
    * 更改所生成文件模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    package com.yaya.actionform;

    import java.util.Date;

    import javax.servlet.http.HttpServletRequest;

    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;

    /**
    * @author Administrator
    *
    * 更改所生成類型注釋的模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    public class UserActionForm extends ActionForm {
    /** identifier field */
    private String username;

    /** identifier field */
    private String userdesc;

    /** identifier field */
    private String passwords;

    /** identifier field */
    private String deptno;

    /** identifier field */
    private String headship;

    /** identifier field */
    private String sex;

    /** identifier field */
    private String tel;

    /** identifier field */
    private String email;

    /** identifier field */
    private String url;

    /** identifier field */
    private String pcall;

    /** identifier field */

    /** identifier field */
    private String userphoto;

    /** identifier field */
    private Integer facerefutime;

    /** identifier field */
    private String facelanguage;

    /** identifier field */
    private String lastmodif;

    /** identifier field */
    private Date lastmdate;

    /** identifier field */
    private String creadtor;

    /** identifier field */
    private Date creatdate;

    public String getUsername() {
    return this.username;
    }

    public void setUsername(String username) {
    this.username = username;
    }



    public String getPasswords() {
    return this.passwords;
    }

    public void setPasswords(String passwords) {
    this.passwords = passwords;
    }

    public String getDeptno() {
    return this.deptno;
    }

    public void setDeptno(String deptno) {
    this.deptno = deptno;
    }

    public String getHeadship() {
    return this.headship;
    }

    public void setHeadship(String headship) {
    this.headship = headship;
    }

    public String getSex() {
    return this.sex;
    }

    public void setSex(String sex) {
    this.sex = sex;
    }

    public String getTel() {
    return this.tel;
    }

    public void setTel(String tel) {
    this.tel = tel;
    }

    public String getEmail() {
    return this.email;
    }

    public void setEmail(String email) {
    this.email = email;
    }

    public String getUrl() {
    return this.url;
    }

    public void setUrl(String url) {
    this.url = url;
    }

    public String getPcall() {
    return this.pcall;
    }

    public void setPcall(String pcall) {
    this.pcall = pcall;
    }


    public String getUserphoto() {
    return this.userphoto;
    }

    public void setUserphoto(String userphoto) {
    this.userphoto = userphoto;
    }

    public Integer getFacerefutime() {
    return this.facerefutime;
    }

    public void setFacerefutime(Integer facerefutime) {
    this.facerefutime = facerefutime;
    }

    public String getFacelanguage() {
    return this.facelanguage;
    }

    public void setFacelanguage(String facelanguage) {
    this.facelanguage = facelanguage;
    }

    public String getLastmodif() {
    return this.lastmodif;
    }

    public void setLastmodif(String lastmodif) {
    this.lastmodif = lastmodif;
    }

    public Date getLastmdate() {
    return this.lastmdate;
    }

    public void setLastmdate(Date lastmdate) {
    this.lastmdate = lastmdate;
    }

    public String getCreadtor() {
    return this.creadtor;
    }

    public void setCreadtor(String creadtor) {
    this.creadtor = creadtor;
    }

    public Date getCreatdate() {
    return this.creatdate;
    }

    public void setCreatdate(Date creatdate) {
    this.creatdate = creatdate;
    }

    /**
    * @return
    */
    public String getUserdesc() {
    return userdesc;
    }

    /**
    * @param string
    */
    public void setUserdesc(String string) {
    userdesc = string;
    }


    }
    ------------------------------------------------------------------
    TSysuser.java
    ------------------------------------------------------------------
    package com.yaya.hb;

    import java.io.InputStream;
    import java.io.Serializable;
    import java.util.Date;
    import org.apache.commons.lang.builder.EqualsBuilder;
    import org.apache.commons.lang.builder.HashCodeBuilder;
    import org.apache.commons.lang.builder.ToStringBuilder;

    /** @author Hibernate CodeGenerator */
    public class TSysuser implements Serializable {

    /** identifier field */
    private String username;

    /** identifier field */
    private String userdesc;

    /** identifier field */
    private String passwords;

    /** identifier field */
    private String deptno;

    /** identifier field */
    private String headship;

    /** identifier field */
    private String sex;

    /** identifier field */
    private String tel;

    /** identifier field */
    private String email;

    /** identifier field */
    private String url;

    /** identifier field */
    private String pcall;

    /** identifier field */

    /** identifier field */
    private String userphoto;

    /** identifier field */
    private Integer facerefutime;

    /** identifier field */
    private String facelanguage;

    /** identifier field */
    private String lastmodif;

    /** identifier field */
    private Date lastmdate;

    /** identifier field */
    private String creadtor;

    /** identifier field */
    private Date creatdate;

    /** full constructor */
    public TSysuser(String username, String userdesc, String passwords, String deptno, String headship, String sex, String tel, String email, String url, String pcall, InputStream userimage, String userphoto, Integer facerefutime, String facelanguage, String lastmodif, Date lastmdate, String creadtor, Date creatdate) {
    this.username = username;
    this.userdesc = userdesc;
    this.passwords = passwords;
    this.deptno = deptno;
    this.headship = headship;
    this.sex = sex;
    this.tel = tel;
    this.email = email;
    this.url = url;
    this.pcall = pcall;
    this.userphoto = userphoto;
    this.facerefutime = facerefutime;
    this.facelanguage = facelanguage;
    this.lastmodif = lastmodif;
    this.lastmdate = lastmdate;
    this.creadtor = creadtor;
    this.creatdate = creatdate;
    }

    /** default constructor */
    public TSysuser() {
    }

    public String getUsername() {
    return this.username;
    }

    public void setUsername(String username) {
    this.username = username;
    }

    public String getUserdesc() {
    return this.userdesc;
    }

    public void setUserdesc(String userdesc) {
    this.userdesc = userdesc;
    }

    public String getPasswords() {
    return this.passwords;
    }

    public void setPasswords(String passwords) {
    this.passwords = passwords;
    }

    public String getDeptno() {
    return this.deptno;
    }

    public void setDeptno(String deptno) {
    this.deptno = deptno;
    }

    public String getHeadship() {
    return this.headship;
    }

    public void setHeadship(String headship) {
    this.headship = headship;
    }

    public String getSex() {
    return this.sex;
    }

    public void setSex(String sex) {
    this.sex = sex;
    }

    public String getTel() {
    return this.tel;
    }

    public void setTel(String tel) {
    this.tel = tel;
    }

    public String getEmail() {
    return this.email;
    }

    public void setEmail(String email) {
    this.email = email;
    }

    public String getUrl() {
    return this.url;
    }

    public void setUrl(String url) {
    this.url = url;
    }

    public String getPcall() {
    return this.pcall;
    }

    public void setPcall(String pcall) {
    this.pcall = pcall;
    }


    public String getUserphoto() {
    return this.userphoto;
    }

    public void setUserphoto(String userphoto) {
    this.userphoto = userphoto;
    }

    public Integer getFacerefutime() {
    return this.facerefutime;
    }

    public void setFacerefutime(Integer facerefutime) {
    this.facerefutime = facerefutime;
    }

    public String getFacelanguage() {
    return this.facelanguage;
    }

    public void setFacelanguage(String facelanguage) {
    this.facelanguage = facelanguage;
    }

    public String getLastmodif() {
    return this.lastmodif;
    }

    public void setLastmodif(String lastmodif) {
    this.lastmodif = lastmodif;
    }

    public Date getLastmdate() {
    return this.lastmdate;
    }

    public void setLastmdate(Date lastmdate) {
    this.lastmdate = lastmdate;
    }

    public String getCreadtor() {
    return this.creadtor;
    }

    public void setCreadtor(String creadtor) {
    this.creadtor = creadtor;
    }

    public Date getCreatdate() {
    return this.creatdate;
    }

    public void setCreatdate(Date creatdate) {
    this.creatdate = creatdate;
    }

    public String toString() {
    return new ToStringBuilder(this)
    .append("username", getUsername())
    .append("userdesc", getUserdesc())
    .append("passwords", getPasswords())
    .append("deptno", getDeptno())
    .append("headship", getHeadship())
    .append("sex", getSex())
    .append("tel", getTel())
    .append("email", getEmail())
    .append("url", getUrl())
    .append("pcall", getPcall())
    .append("userphoto", getUserphoto())
    .append("facerefutime", getFacerefutime())
    .append("facelanguage", getFacelanguage())
    .append("lastmodif", getLastmodif())
    .append("lastmdate", getLastmdate())
    .append("creadtor", getCreadtor())
    .append("creatdate", getCreatdate())
    .toString();
    }

    public boolean equals(Object other) {
    if ( !(other instanceof TSysuser) ) return false;
    TSysuser castOther = (TSysuser) other;
    return new EqualsBuilder()
    .append(this.getUsername(), castOther.getUsername())
    .append(this.getUserdesc(), castOther.getUserdesc())
    .append(this.getPasswords(), castOther.getPasswords())
    .append(this.getDeptno(), castOther.getDeptno())
    .append(this.getHeadship(), castOther.getHeadship())
    .append(this.getSex(), castOther.getSex())
    .append(this.getTel(), castOther.getTel())
    .append(this.getEmail(), castOther.getEmail())
    .append(this.getUrl(), castOther.getUrl())
    .append(this.getPcall(), castOther.getPcall())
    .append(this.getUserphoto(), castOther.getUserphoto())
    .append(this.getFacerefutime(), castOther.getFacerefutime())
    .append(this.getFacelanguage(), castOther.getFacelanguage())
    .append(this.getLastmodif(), castOther.getLastmodif())
    .append(this.getLastmdate(), castOther.getLastmdate())
    .append(this.getCreadtor(), castOther.getCreadtor())
    .append(this.getCreatdate(), castOther.getCreatdate())
    .isEquals();
    }

    public int hashCode() {
    return new HashCodeBuilder()
    .append(getUsername())
    .append(getUserdesc())
    .append(getPasswords())
    .append(getDeptno())
    .append(getHeadship())
    .append(getSex())
    .append(getTel())
    .append(getEmail())
    .append(getUrl())
    .append(getPcall())
    .append(getUserphoto())
    .append(getFacerefutime())
    .append(getFacelanguage())
    .append(getLastmodif())
    .append(getLastmdate())
    .append(getCreadtor())
    .append(getCreatdate())
    .toHashCode();
    }

    }
    ---------------------------------------------------------------------
    IUserManager.java
    ---------------------------------------------------------------------
    package com.yaya.service;

    import java.util.List;

    import com.yaya.hb.TSysuser;
    import com.yaya.service.dao.IUserDao;


    public interface IUserManager {
    public void setUserDAO(IUserDao userDao);
    public TSysuser getUser(String username);
    public List getUsers();
    public void saveUser(TSysuser user);
    public void removeUser(String username);
    }
    --------------------------------------------------------------------
    IDAO.java
    --------------------------------------------------------------------
    /*
    * 創建日期 2005-4-7
    *
    * 更改所生成文件模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    package com.yaya.service.dao;
    /**
    * @author Administrator
    *
    * 更改所生成類型注釋的模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    public interface IDAO {

    }
    --------------------------------------------------------------
    IUserDao.java
    --------------------------------------------------------------
    /*
    * 創建日期 2005-4-11
    *
    * 更改所生成文件模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    package com.yaya.service.dao;

    import java.util.List;

    import com.yaya.hb.TSysuser;

    /**
    * @author Administrator
    *
    * 更改所生成類型注釋的模板為
    * 窗口 > 首選項 > Java > 代碼生成 > 代碼和注釋
    */
    public interface IUserDao extends IDAO {

    public List getUsers();
    public TSysuser getUser(String username);
    public void saveUser(TSysuser user);
    public void removeUser(String username);
    }
    ----------------------------------------------------------
    UserManagerImpl.java
    ----------------------------------------------------------
    package com.yaya.service.spring;

    import com.yaya.hb.TSysuser;
    import com.yaya.service.IUserManager;
    import com.yaya.service.dao.IUserDao;

    import java.util.List;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    public class UserManagerImpl implements IUserManager {
    private static Log log = LogFactory.getLog(UserManagerImpl.class);

    public IUserDao dao;

    public void setUserDao(IUserDao userDao) {
    this.dao = userDao;
    this.setUserDAO(userDao);
    }

    public TSysuser getUser(String username) {
    return dao.getUser(username);
    }

    public List getUsers() {
    return dao.getUsers();
    }

    public void saveUser(TSysuser user) {
    dao.saveUser(user);
    }

    public void removeUser(String username) {
    // TODO 自動生成方法存根
    dao.removeUser(username);
    }


    public void setUserDAO(IUserDao dao) {
    // TODO 自動生成方法存根
    this.dao = dao;
    }
    }
    -----------------------------------------------------------------
    TSysuser.hbm.xml
    -----------------------------------------------------------------
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

    <hibernate-mapping>
    <!--
    Created by the Middlegen Hibernate plugin

    http://boss.bekk.no/boss/middlegen/
    http://hibernate.sourceforge.net/
    -->

    <class name="com.yaya.hb.TSysuser" table="t_sysuser">

    <id name="username" type="java.lang.String" column="USERNAME">
    <generator class="identity" />
    </id>

    <property name="userdesc" type="java.lang.String" column="USERDESC" length="30" />
    <property name="passwords" type="java.lang.String" column="PASSWORDS" length="30" />
    <property name="deptno" type="java.lang.String" column="DEPTNO" length="30" />
    <property name="headship" type="java.lang.String" column="HEADSHIP" length="30" />
    <property name="sex" type="java.lang.String" column="SEX" length="4" />
    <property name="tel" type="java.lang.String" column="TEL" length="18" />
    <property name="email" type="java.lang.String" column="EMAIL" length="30" />
    <property name="url" type="java.lang.String" column="URL" length="30" />
    <property name="pcall" type="java.lang.String" column="PCALL" length="20" />
    <property name="userphoto" type="java.lang.String" column="USERPHOTO" length="255" />
    <property name="facerefutime" type="java.lang.Integer" column="FACEREFUTIME" length="6" />
    <property name="facelanguage" type="java.lang.String" column="FACELANGUAGE" length="1" />
    <property name="lastmodif" type="java.lang.String" column="LASTMODIF" length="30" />
    <property name="lastmdate" type="java.sql.Timestamp" column="LASTMDATE" length="19" />
    <property name="creadtor" type="java.lang.String" column="CREADTOR" length="30" />
    <property name="creatdate" type="java.sql.Timestamp" column="CREATDATE" length="19" />

    <!-- associations -->

    </class>
    </hibernate-mapping>
    -------------------------------------------------------------------
    創建數據庫腳本 用于MYSQL
    -------------------------------------------------------------------
    CREATE TABLE `t_sysuser` (
    `USERNAME` varchar(30) NOT NULL default '',
    `USERDESC` varchar(30) default NULL,
    `PASSWORDS` varchar(30) default NULL,
    `DEPTNO` varchar(30) default NULL,
    `HEADSHIP` varchar(30) default NULL,
    `SEX` varchar(4) default NULL,
    `TEL` varchar(1Cool default NULL,
    `EMAIL` varchar(30) default NULL,
    `URL` varchar(30) default NULL,
    `PCALL` varchar(20) default NULL,
    `USERPHOTO` varchar(255) default NULL,
    `FACEREFUTIME` decimal(6,0) default NULL,
    `FACELANGUAGE` char(1) default NULL,
    `LASTMODIF` varchar(30) default NULL,
    `LASTMDATE` datetime default NULL,
    `CREADTOR` varchar(30) default NULL,
    `CREATDATE` datetime default NULL,
    PRIMARY KEY (`USERNAME`)
    ) TYPE=MyISAM;
    -----------------------------------------------------------
    提示:COPY幾個資源文件
    validation.xml 和 validator-rules.xml
    前臺使用的幾個JSP文件如下:
    -----------------------------------------------------------
    index.jsp
    -----------------------------------------------------------
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

    <hibernate-mapping>
    <!--
    Created by the Middlegen Hibernate plugin

    http://boss.bekk.no/boss/middlegen/
    http://hibernate.sourceforge.net/
    -->

    <class name="com.yaya.hb.TSysuser" table="t_sysuser">

    <id name="username" type="java.lang.String" column="USERNAME">
    <generator class="identity" />
    </id>

    <property name="userdesc" type="java.lang.String" column="USERDESC" length="30" />
    <property name="passwords" type="java.lang.String" column="PASSWORDS" length="30" />
    <property name="deptno" type="java.lang.String" column="DEPTNO" length="30" />
    <property name="headship" type="java.lang.String" column="HEADSHIP" length="30" />
    <property name="sex" type="java.lang.String" column="SEX" length="4" />
    <property name="tel" type="java.lang.String" column="TEL" length="18" />
    <property name="email" type="java.lang.String" column="EMAIL" length="30" />
    <property name="url" type="java.lang.String" column="URL" length="30" />
    <property name="pcall" type="java.lang.String" column="PCALL" length="20" />
    <property name="userphoto" type="java.lang.String" column="USERPHOTO" length="255" />
    <property name="facerefutime" type="java.lang.Integer" column="FACEREFUTIME" length="6" />
    <property name="facelanguage" type="java.lang.String" column="FACELANGUAGE" length="1" />
    <property name="lastmodif" type="java.lang.String" column="LASTMODIF" length="30" />
    <property name="lastmdate" type="java.sql.Timestamp" column="LASTMDATE" length="19" />
    <property name="creadtor" type="java.lang.String" column="CREADTOR" length="30" />
    <property name="creatdate" type="java.sql.Timestamp" column="CREATDATE" length="19" />

    <!-- associations -->

    </class>
    </hibernate-mapping>
    ------------------------------------------------------------------
    userlist.jsp
    ------------------------------------------------------------------
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ page contentType="text/html; charset=UTF-8" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

    <html:html locale="true">
    <head>
    <title><bean:message key="pdmweb.title"/></title>
    </head>
    <body>
    <table class="list">
    <thead>
    <tr bgcolor="#8080ff">
    <td bgcolor="#8080ff"><bean:message key="listuser.username" /></td>
    <td bgcolor="#8080ff"><bean:message key="listuser.userdesc" /></td>
    <td bgcolor="#8080ff"><bean:message key="listuser.sex" /></td>
    </tr>
    </thead>
    <tbody>
    <logic:iterate id="user" name="users">
    <tr>
    <td bgcolor="#ff8040"><A href="User.do?method=edit&username=<bean:write name="user" property="username"/>" ><bean:write name="user" property="username" />
    </a>
    </td>
    <td bgcolor="#ff8040"><bean:write name="user" property="userdesc" /></td>
    <td bgcolor="#ff8040"><logic:equal name="user" property="sex" value="0">
    <bean:message key="listuser.sex0" />
    </logic:equal> <logic:equal name="user" property="sex" value="1">
    <bean:message key="listuser.sex1" />
    </logic:equal></td>
    </tr>
    </logic:iterate>
    </tbody>
    </table>
    </body>
    </html:html>
    -------------------------------------------------------------------
    userform.jsp
    ------------------------------------------------------------------
    <%@ page contentType="text/html; charset=UTF-8" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html:html locale="true">
    <head>
    <html:base />
    <title>userform.jsp</title>
    </head>
    <body>

    <html:form action="User.do?method=save" method="post" focus="user.userdesc" >
    <html:text property="user.username" />
    <br>
    <html:text property="user.userdesc" /><br>
    <html:text property="user.deptno" /><br>


    <html:submit property="tijiao" />
    </html:form>
    </body>
    </html:html>
    --------------------------------------------------------------
    如果有什么疑問可以致電郵至 heweiya@yahoo.com.cn,互相交流,互相學習。

    posted on 2005-12-19 11:27 @家軍 閱讀(439) 評論(1)  編輯  收藏 所屬分類: J2EE技術類

    評論

    # re: 史上最簡單的struts+spring+hibernate配置實例[修訂版] 2006-03-11 10:17 NetFetch

    看上去就是些abc,不過還是可以run  回復  更多評論   

    主站蜘蛛池模板: 无码国产精品一区二区免费式直播| 在线jyzzjyzz免费视频| 亚洲国产精品综合久久网各| 野花高清在线观看免费3中文| 亚洲AV成人一区二区三区观看| 亚洲色WWW成人永久网址| 91制片厂制作传媒免费版樱花 | 国产免费一区二区三区免费视频| 久久精品视频亚洲| 午夜视频在线观看免费完整版| 国产免费人成视频尤勿视频| 亚洲婷婷综合色高清在线| 亚洲国产午夜中文字幕精品黄网站| 99视频免费观看| 美女裸免费观看网站| 亚洲高清中文字幕| 亚洲午夜爱爱香蕉片| 国产99视频精品免费观看7| 国产黄片不卡免费| 亚洲熟妇无码AV不卡在线播放| 亚洲精品无码MV在线观看| 国产麻豆剧传媒精品国产免费| 99爱在线精品视频免费观看9| 色噜噜的亚洲男人的天堂| 久久国产亚洲高清观看| 亚洲人成影院在线观看 | 国产成人涩涩涩视频在线观看免费| 青柠影视在线观看免费| 女bbbbxxxx另类亚洲| 亚洲精品资源在线| 国产精品亚洲片在线观看不卡 | 亚洲成a人片毛片在线| 亚洲一区二区女搞男| 日韩精品视频免费网址| 7m凹凸精品分类大全免费| eeuss草民免费| 手机永久免费的AV在线电影网| 亚洲中文无码永久免费| 亚洲精品视频久久| 亚洲精品~无码抽插| 亚洲伊人久久成综合人影院|