J2EE框架(TomcatStrutsHibernateSpringAjax(dojo))开发步骤:

 

J2EE框架(TomcatStrutsHibernateSpringAjax(dojo)  

                      开发步骤:

一、开发环境及已有CVS项目加载方法

1、开发环境:

jdk-1_5_0-windows-i586.exe

Eclipse3.2.exe;

eclipse3.2andmyeclipse5.0(MyEclipseEnterpriseWorkbenchInstaller_5.0.1GA_E3.2.exe);

jakarta-tomcat-5.0.28;

备注:先安装jdk-1_5_0-windows-i586.exe,然后安装Eclipse3.2.exe(如果是绿化版,则不需要安装)

在安装MyEclipseEnterpriseWorkbenchInstaller_5.0.1GA_E3.2.exe时,工作路径指向Eclipse的安装主目录。

2、CVS项目加载:

1)先创建一个CVS库的链接。

 

2Check Out(或者Check Out AS)

3) 然后转到“MyEclipse J2EE Development.

 

 

 

 

 

 

4JDK tomcat 服务配置。

  

 

二、O/R 映射方法

3、建立一个J2EE web project;

4、打开MyEclipse DataBase Explorer,创建一个ORACLE数据库连接;

3、搭建Hibernate 框架:"选择工程(第一步创建的)根目录"---"右键"---"MyEclipse"---"add hibernate capabilities"

4、打开MyEclipse DataBase Explorer,“选择对应的数据库表”“右键”hibernate reverse--engineering

该步骤会生成两类文件*.java *.xml文件,需要修改XML文件:

修改:

<hibernate-mapping>

    <class name="VO.EamCompanies" table="EAM_COMPANIES" schema="EAIS_UPDATE">

        <id name="companyId" type="java.lang.Long">

为:

<hibernate-mapping>

    <class name="com.enstrong.mis.resource.companies.vo.EamCompanies" table="EAM_COMPANIES">

        <id name="companyId" type="java.lang.Long">

修改:

        <set name="eamCompcontacts" inverse="true">

            <key>

                <column name="COMPANY_ID" precision="22" scale="0" />

            </key>

            <one-to-many class="VO.EamCompcontact" />

        </set>

    </class>

</hibernate-mapping>

为:

        <set name="eamCompcontacts" inverse="true">

            <key>

                <column name="COMPANY_ID" precision="22" scale="0" />

            </key>

            <one-to-many class="com.enstrong.mis.resource.companies.vo.EamCompcontact" />

        </set>

    </class>

</hibernate-mapping>

然后把修改后的*.xml文件和*.java文件 拷贝的MyEclipse Web Project srcVO包中;O/R映射就结束;

二、后台框架搭建

1、按框架的目录结构建立4个包:vodaoserviceactionform(只是查询数据时不需要)action

2vo部分,在第一部分中,已经实现;

3dao部分,主要实现数据的持久化的操作,通过接口和接口实现(类)模式处理;

4service 业务逻辑处理层,Service也是控制器层(Action)和模型(VO,DAO)交互的中间桥梁;同时和Action一起来处理业务逻辑;

注意:在创建Service时,要进行StrutsHibernate的配置:

Spring Service配置:applicationContext-service.xml

    <!-- 公司信息service -->

    <bean id="EamCompaniesServiceImp" parent="txProxyTemplate">

       <property name="target">

           <bean class="com.enstrong.mis.resource.companies.service.EamCompaniesServiceImp">

              <property name="companiesDao" ref="companiesDao"></property>

           </bean>

       </property>

    </bean>

    <!-- 公司联系人信息service -->

    <bean id="EamCompcontactServiceImp" parent="txProxyTemplate">

       <property name="target">

           <bean class="com.enstrong.mis.resource.companies.service.EamCompcontactServiceImp">

              <property name="compcontactDao" ref="compcontactDao"></property>

              <property name="companiesDao" ref="companiesDao"></property>

           </bean>

       </property>

    </bean>class="com.enstrong.mis.resource.companies.dao.EamCompcontactImp">

       <property name="sessionFactory">

           <ref bean="mySessionFactory" />

       </property>

    </bean>   

Hibernate配置:applicationContext-hibernate.xml

    <!-- 公司信息 -->

    <bean id="companiesDao" class="com.enstrong.mis.resource.companies.dao.EamCompaniesDaoImp">

       <property name="sessionFactory">

           <ref bean="mySessionFactory" />

       </property>

    </bean>   

    <!-- 公司联系人信息 -->

    <bean id="compcontactDao" class="com.enstrong.mis.resource.companies.dao.EamCompcontactImp">

       <property name="sessionFactory">

           <ref bean="mySessionFactory" />

       </property>

    </bean>   

另外,在Service创建dao对象时要注意get set 方法;

5ActionForm 可以直接拷贝VO对象,把VO中的复杂数据类型,都改成String类型,同时要注意类的继承发生变化;

public class EamCompaniesForm extends ActionForm implements java.io.Serializable

6Action是控制器成,与前台JSP交互,也是控制业务流转的关键层;

三、前台JSP开发

1、前台Struts配置

<?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>

    <form-beans>

       <form-bean name="companyBean" type="com.enstrong.mis.resource.companies.actionform.EamCompaniesForm"></form-bean>

    </form-beans>

 

    <action-mappings>

       <action name="companyBean" path="/eamCompaniesAction" validate="false" parameter="method" scope="request" type="com.enstrong.mis.resource.companies.action.EamCompaniesAction">

           <forward name="forwardMain" path="/pages/resource/companies/main_companies.jsp" />   

           <forward name="forwardGrid_companies" path="/pages/resource/companies/grid_companies.jsp" />

           <forward name="forwardTab_companies" path="/pages/resource/companies/tab_companies.jsp" />  

            <forward name="forwardTab_compcontact" path="/pages/resource/companies/tab_companies_contact.jsp" />            

       </action> 

    </action-mappings>

   

    <message-resources parameter="ApplicationResources" />

   

    <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>

 

假如上面创建的配置文件的名称是“struts-config-resource.xml”,需要在工程的web.xml中增加 Action 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,/WEB-INF/struts-config-sysinit.xml,/WEB-INF/struts-config-ranliao.xml,/WEB-INF/struts-config-sampling.xml,/WEB-INF/struts-config-equipment.xml,/WEB-INF/struts-config-runmanager.xml,

           /WEB-INF/struts-config-sampling.xml,/WEB-INF/struts-config-material.xml,/WEB-INF/struts-config-pm-ht.xml,/WEB-INF/struts-config-produce.xml,/WEB-INF/struts-config-hr.xml,

              /WEB-INF/struts-config-planmanager.xml, /WEB-INF/struts-config-overhaul.xml,/WEB-INF/struts-config-workflow.xml,/WEB-INF/struts-config-resource.xml

           </param-value>主页面DoSearch方法:

    function doSearch(page) {

       cur_page = (page==undefined)?1:page;

       companyName = dojo.byId("companiesName").value;

       companyCode = dojo.byId("companiesCode").value;

       dojo.io.bind({

          url: "<%=request.getContextPath()%>/eamCompaniesAction.do",

        encoding: 'UTF-8',

        method: 'post',

        content: {

        method: 'getCompainesListByPage',    

           cur_page: cur_page,

           companyName: companyName,

           companyCode: companyCode

          },

          load: function(type, data, evt) {       

         resetAll();

           //dojo.debug('success!!!!!' );

         dojo.widget.byId("main").setContent(data);

         //alert(data);

           fixdg();

        },

          error: function(type, error) {

           dlgShow('搜索失败!!!!');

        },

          mimetype: "text/plain"

        });

 

    }

原文地址:https://www.cnblogs.com/GeneralXU/p/1374865.html