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

            });

     

        }

  • 相关阅读:
    应当将指针变量用“==”或“!=”与 NULL 比较
    不可将浮点变量用“==”或“!=”与任何数字比较
    应当将整型变量用“==”或“!=”直接与 0 比较
    不可将布尔变量直接与 TRUE、FALSE 或者 1、0 进行比较
    不要把程序中的复合表达式与“真正的数学表达式”混淆
    不要有多用途的复合表达式
    不要编写太复杂的复合表达式
    用括号确定表达式的操作顺序
    为了防止某一软件库中的一些标识符和其它软件库中的冲突
    类的数据成员加前缀 m_(表示 member)
  • 原文地址:https://www.cnblogs.com/GeneralXU/p/1976495.html
Copyright © 2020-2023  润新知