CSDN博客

img Adub

基于pfw的web开发平台使用指南

发表于2004/10/20 13:14:00  1273人阅读

分类: pfw

1.平台概述

此部分目的:主要包括平台的说明, 一般应用页面的整体框架说明, 以及平台开发的内容与页面内容的对应关系等. 使开发人员知道做下面一系列工作的意义.

一般页面主成:上面是菜单(menu),左面是树形控件(tree),右边是具体的内容显示(包括Form, List等组件的页面Page). 见下图:

新版本style

此部分目的:主要包括平台的说明, 一般应用页面的整体框架说明, 以及平台开发的内容与页面内容的对应关系等. 使开发人员知道做下面一系列工作的意义.

一般页面主成:上面是菜单(menu),左面是树形控件(tree),右边是具体的内容显示(包括Form, List等组件的页面Page). 见下图:

新版本style

老版本style,以下按老版本的一个我们自己用的bug管理模块写

  • 菜单:如果有子菜单,可以下拉,通过级联菜单实现。菜单内容为各个模块的链接,即可能有多个子系统,图中显示的是《开发》的下拉菜单中的《BUG管理模块》。
  • 树形控件:针对各个模块的组成划分,如按所需要的功能划分,或按不同等级用户划分等。
  • 右边的Page:具体的业务信息,包括Form, List, Tree, Tab等组件,如上图包括一个Form和一个List组件。
  • 页面之间的跳转:通过菜单和树形控件的链接可以到相应页面。对于业务逻辑的页面跳转,主要通过组件中的按钮实现。
  • Form中的按钮一般执行查询,修改,增加等,其对数据库操作。
  • List 中的按钮一般和相关Form中的按钮相对应(为了达到组件重用),当点击此处按钮时,跳转到相应的Form中,由Form中的按钮完成数据库操作。如:当点击List中的增加按钮( toadd ), 将转到只有Form的页面(指右边的Page,如下图), 实际还是当前页,只不过在增加按钮( toadd )的事件中将List 隐藏了,同时这时Form中显示增加(add)按钮,填入相应内容,点击增加( add )插入一条新的纪录。其他按钮对应关系与此类同。
  • 平台中使用的与上面对应的概念有:

       模块 :主要针对一个具体的应用项目,名称与具体项目相关。
      
包   :为了代码归类存放,包的命名一般为开发公司内部使用的系统工具的时候类似 com.rt.xxx.xxx ,具体业务时使用举例如下:com.rt.sys.menu
       
     实体:( dataObject ) 对应数据库中的表,实体属性有实体名称,字段名称,字段类型,是否为主键。 实体名称最好和数据库中的对应表名称对应,免得混淆,名称开头字母要大写。字段名称对应表的具体字段,类型可以从下拉列表里选择
      
组件:( component ) 包括FormListTreeTab等。 组件属性包括:组件名称,组件类型,对应的实体名称,展现类型(用来控制是否可以修改),一些风格设置项等。
      
页面:( page ) 业务信息的表示主体部分,由组件组成。

在下面将会详细描述相关信息。

在下面将会详细描述相关信息。

在下面将会详细描述相关信息。

2.平台启动

叙述平台的启动相关内容, 以及以后对模块的装载,修改保存,GT操作等.

JBuilder里打开将要开发的项目,在开发过程中一般用调试方式启动,启动方式:菜单run>Debug Project 然后选择web或者使用快捷键shiftF9或使用工具栏中的快捷方式,这样在输出窗口将会看到启动信息。启动成功后,打开IE,在地址栏中输入本地地址http://localhost(端口要看具体设置,此为80端口),前面成功的话,应该出现的界面如下。

根据提供的用户名与密码登录系统,初次登录可能速度稍慢,因为要装载很多信息。登录后选择wide开发模块,如图:(当然图中的菜单menu内容不一定与此一样)

点击WIDECREATE确定模块信息,然后保存。以后修改时填写完模块名后点击左边的装载按钮可以读出以前的存档,在开发过程中修改后一定要保存,一般右边会有相应的保存按钮,保存后点击左边的查询按钮将会看到刚加的内容出现在左边的树形列表里,在修改过程中还要点击左边的保存按钮及时保存,当所有组件,页面等都开发完后,并且也保存了,通过点击左边的GT按钮生成相关文件,在JBuilder中将会看到其内容。

3.确定模块和包

确定模块名称,保存路径等相关信息. 以及包名的确定, 包括命名规范等

模块:主要针对一个具体的应用项目,名称与具体项目相关。点击WIDECREATE后界面如下:

module_name中填入名称,前后要加上“/”,下面两个单选项都不选,保存后将会新建你的模块。对于一些路径的设置,正常是不允许修改的,如果需要修改可以在src文件夹下的conf.xml文件(一般会类似于D:/cvslocal/bug/src/conf.xml)中找到相应的设置,注意对应关系。

包:点击树形列表里的src,将会出现包的界面:




填写包名,必须遵循一定规范,包的命名一般为开发公司内部使用的系统工具的时候类似 com.rt.xxx.xxx 。增加后将会在下面的列表中列出,根据需要增加相应数目的包。


4.设计实体

实体:( dataObject ) 对应数据库中的表,实体属性有实体名称,字段名称,字段类型,是否为主键。字段名称对应表的具体字段,类型可以从下拉列表里选择。具体操作如下:

点击左边树形列表里包下面的dataObjets,将会出现增加实体的界面,下面的列表将会列出现有的实体,如下图:

实体名称最好和数据库中的对应表名称对应,免得混淆,名称开头字母必须大写。根据所需要的表的数目增加相应的实体。

点击左边的查询按钮,将会看到dataObjects下面列出了刚才增加的实体,点击需要编辑的实体,下图为实体Module,已经加了三个字段。

根据数据库中的表结构增加相同的字段,选择类型,一般将xxx_ID设置为主键,但是在特殊需要的时候将会有多个字段组合主键。

Hibernate的对应文件:如Bug.hbm.xml文件,一般不会修改,特殊需要时才会修改。

<hibernate-mapping>

// 下面为hibernate的实体与数据库的对应关系

    <class name="com.rt.base.dataobject.Bug" table="Bug" lazy="false">

        // 主键

        <id name="bugId" type="string" unsaved-value="null">

            <column name="BUG_ID" sql-type="char(32)" not-null="true"/>

            <generator class="uuid.hex"/>

        </id>

        // 一般字段

        <property name="moduleId"><column name="MODULE_ID"/></property>

        <property name="bugName"><column name="BUG_NAME"/></property>

        <property name="bugType"><column name="BUG_TYPE"/></property>

        <property name="bugState"><column name="BUG_STATE"/></property>

        <property name="bugPri"><column name="BUG_PRI"/></property>

        <property name="bugFxr"><column name="BUG_FXR"/></property>

        <property name="bugFxsj"><column name="BUG_FXSJ"/></property>

        <property name="bugWcsj"><column name="BUG_WCSJ"/></property>

        <property name="bugNote"><column name="BUG_NOTE"/></property>

        <property name="bugXgyj"><column name="BUG_XGYJ"/></property>

        <property name="bugXtid"><column name="BUG_XTID"/></property>

    </class>

</hibernate-mapping>

5.设计组件

包括Form,List,Tree…

风格的设计如:是否包含标题等

字段的设计如:展现类型,大小,是否显示等

此处会涉及到下拉列表内容的确定, 弹出窗口的使用方法, 以及一些辅助的javascript的编写说明等.

按钮的设计,包括命名规范,addtoadd, 以及它们之间的一般隐藏关系等

对于中文显示的一些说明

constants目录下的constants.xml文件的使用

组件:( component ) 包括FormListTreeTab等。 组件属性包括:组件名称,组件类型,对应的实体名称,展现类型(用来控制是否可以修改),一些风格设置项等。以下分别描述相关信息。

点击左边的树形列表里的components,界面如下:

填写组件名称,从组件类型下拉列表里可以选择增加的组件类型,增加相应组件。

下面分别描述。

(1) Form:

命名,开头小写后缀为Form,前面一般对应于某个实体的名称,如bugForm、moduleForm,图中的pmrForm;通过实体名称项与前面创建的相关实体绑定,这样可以看到对应实体的各个字段,根据需要选择各个字段的显示方式;Form的风格设置,要存在边,存在标题,不存在顶部、底部按钮,每行列数默认为3,可以根据需要自行设定。按钮相关在(2)List中说明。

(2) List: 

命名方式类同Form命名方法,只不过后缀为List,如bugList; Form设置不同的是List一般不需要标题,支持分页,每页行数默认为10行。字段的设置与Form相同,按钮相关上面已经提及,可以参考图中信息。

FormList中都会有按钮,按钮命名方法为,Form中一般有查询(search)、修改(modify)、增加(add)、重置(reset)和返回(back)List中一般有增加(toadd)、修改(tomodify)、详情(todetail)和删除(todelete), 对应Form中的各个按钮以to开头,如果支持分页将会自动产生上一页和下一页的按钮。如果按照此方法命名,可以显示对应的中文。

对于按钮事件的转向页面,多数是采用默认的this,如果特殊需要可以指定,举例说明:在上图list中如果todetail要转向BugPage页面,在转向页面中填写包名+presentation.BugPage, 图中的即为com.rt.tool.bug.presentation.BugPage;对应的程序在按钮所在页面的Base类中,会有this.todetail.setForward(xxx); 在按钮的事件performTodetail中会产生新的实例赋值给nextpage,如果不是通过WIDE生成,而是想通过改程序指定转向页面,则需要在按钮事件中产生新的实例。可以参考自动生成的代码。

(3) Tree: Tree组件的使用方法如下:

       创建一个页面(方法见下文的页面创建方法),对应于左边树形列表的页面,名称类似于BugLeftPage,JBuilder中找到对应的程序,如本例中 com.rt.tool.bug.presentation.BugLeftPagejava文件, 声明一个树形组件bugTree( public TreeCpt bugTree; ) ,在构造函数中添加类似如下代码:

       this.bugTree = new TreeCpt( "bugTree" );

       this.bugTree.setExistBorder( true );

// 增加根节点

       TreeNode root = new TreeNode( "BUG管理" );

//一般节点

       TreeNode sys=new TreeNode("管理人员");

       TreeNode pro=new TreeNode("开发人员");

       TreeNode user=new TreeNode("用户");

       TreeNode bugData = new TreeNode( "BUG" );

       TreeNode moduleData = new TreeNode( "模块" );

       TreeNode pmrData=new TreeNode("模块相关人员");

       TreeNode PSearchData=new TreeNode("查看BUG");

            //设置节点的转向页面

       bugData.setPage("com.rt.tool.bug.presentation.BugPage" );

       bugData.setTarget( "mainFrame" );

       moduleData.setPage("com.rt.tool.bug.presentation.ModulePage" );

       moduleData.setTarget( "mainFrame" );

       pmrData.setPage("com.rt.tool.bug.presentation.PmrPage" );

       pmrData.setTarget( "mainFrame" );

       PSearchData.setPage("com.rt.tool.bug.presentation.PSearchPage" );

       PSearchData.setTarget("mainFrame");

            //构造树的父子节点关系

       root.addChild( sys );

       root.addChild(pro) ;

       root.addChild(user);

       sys.addChild(moduleData);

       sys.addChild(pmrData);

       pro.addChild(PSearchData);

       user.addChild(bugData);

            //将前面构造的树放入树形组件中

       this.bugTree.setTreeNode( root );

            //将树展开三层,便于使用

       this.bugTree.setUnwrapLevel(3);

这样就建好了树形列表的页面,还要将它加到整个网页中去,找到要增加树形列表的jsp页面,一般会手动在web下建立一个主页面,如BugMainPage.jsp,此命名无特殊要求,便于理解即可,在此页面中添加:

<frame name="leftFrame" scrolling="AUTO"  src="BugLeftPage.jsp">

(4) Menu: Menu 指的是整体页面上面的菜单。一般要将自己的模块加到整个系统中时要使用此添加方法:

        sql server的企业管理器打开SYS_MENU表,

菜单的构造是根据此表中的数据来的:

SYS_MENU_ID :顺序递增即可,

LEVEL_REFERRENCE :则体现了层次关系,

MENU_NAME :为显示的内容,

MENU_PAGE :为链接的指向,一般是每个模块的主页面(上图中有没用数据)

        sql server的企业管理器打开SYS_MENU表,

菜单的构造是根据此表中的数据来的:

SYS_MENU_ID :顺序递增即可,

LEVEL_REFERRENCE :则体现了层次关系,

MENU_NAME :为显示的内容,

MENU_PAGE :为链接的指向,一般是每个模块的主页面(上图中有没用数据)

下面分别描述。

(1) Form:

命名,开头小写后缀为Form,前面一般对应于某个实体的名称,如bugForm、moduleForm,图中的pmrForm;通过实体名称项与前面创建的相关实体绑定,这样可以看到对应实体的各个字段,根据需要选择各个字段的显示方式;Form的风格设置,要存在边,存在标题,不存在顶部、底部按钮,每行列数默认为3,可以根据需要自行设定。按钮相关在(2)List中说明。

(2) List: 

命名方式类同Form命名方法,只不过后缀为List,如bugList; Form设置不同的是List一般不需要标题,支持分页,每页行数默认为10行。字段的设置与Form相同,按钮相关上面已经提及,可以参考图中信息。

FormList中都会有按钮,按钮命名方法为,Form中一般有查询(search)、修改(modify)、增加(add)、重置(reset)和返回(back)List中一般有增加(toadd)、修改(tomodify)、详情(todetail)和删除(todelete), 对应Form中的各个按钮以to开头,如果支持分页将会自动产生上一页和下一页的按钮。如果按照此方法命名,可以显示对应的中文。

对于按钮事件的转向页面,多数是采用默认的this,如果特殊需要可以指定,举例说明:在上图list中如果todetail要转向BugPage页面,在转向页面中填写包名+presentation.BugPage, 图中的即为com.rt.tool.bug.presentation.BugPage;对应的程序在按钮所在页面的Base类中,会有this.todetail.setForward(xxx); 在按钮的事件performTodetail中会产生新的实例赋值给nextpage,如果不是通过WIDE生成,而是想通过改程序指定转向页面,则需要在按钮事件中产生新的实例。可以参考自动生成的代码。

(3) Tree: Tree组件的使用方法如下:

       创建一个页面(方法见下文的页面创建方法),对应于左边树形列表的页面,名称类似于BugLeftPage,JBuilder中找到对应的程序,如本例中 com.rt.tool.bug.presentation.BugLeftPagejava文件, 声明一个树形组件bugTree( public TreeCpt bugTree; ) ,在构造函数中添加类似如下代码:

       this.bugTree = new TreeCpt( "bugTree" );

       this.bugTree.setExistBorder( true );

// 增加根节点

       TreeNode root = new TreeNode( "BUG管理" );

//一般节点

       TreeNode sys=new TreeNode("管理人员");

       TreeNode pro=new TreeNode("开发人员");

       TreeNode user=new TreeNode("用户");

       TreeNode bugData = new TreeNode( "BUG" );

       TreeNode moduleData = new TreeNode( "模块" );

       TreeNode pmrData=new TreeNode("模块相关人员");

       TreeNode PSearchData=new TreeNode("查看BUG");

            //设置节点的转向页面

       bugData.setPage("com.rt.tool.bug.presentation.BugPage" );

       bugData.setTarget( "mainFrame" );

       moduleData.setPage("com.rt.tool.bug.presentation.ModulePage" );

       moduleData.setTarget( "mainFrame" );

       pmrData.setPage("com.rt.tool.bug.presentation.PmrPage" );

       pmrData.setTarget( "mainFrame" );

       PSearchData.setPage("com.rt.tool.bug.presentation.PSearchPage" );

       PSearchData.setTarget("mainFrame");

            //构造树的父子节点关系

       root.addChild( sys );

       root.addChild(pro) ;

       root.addChild(user);

       sys.addChild(moduleData);

       sys.addChild(pmrData);

       pro.addChild(PSearchData);

       user.addChild(bugData);

            //将前面构造的树放入树形组件中

       this.bugTree.setTreeNode( root );

            //将树展开三层,便于使用

       this.bugTree.setUnwrapLevel(3);

这样就建好了树形列表的页面,还要将它加到整个网页中去,找到要增加树形列表的jsp页面,一般会手动在web下建立一个主页面,如BugMainPage.jsp,此命名无特殊要求,便于理解即可,在此页面中添加:

<frame name="leftFrame" scrolling="AUTO"  src="BugLeftPage.jsp">

(4) Menu: Menu 指的是整体页面上面的菜单。一般要将自己的模块加到整个系统中时要使用此添加方法:

        sql server的企业管理器打开SYS_MENU表,

菜单的构造是根据此表中的数据来的:

SYS_MENU_ID :顺序递增即可,

LEVEL_REFERRENCE :则体现了层次关系,

MENU_NAME :为显示的内容,

MENU_PAGE :为链接的指向,一般是每个模块的主页面(上图中有没用数据)

        sql server的企业管理器打开SYS_MENU表,

菜单的构造是根据此表中的数据来的:

SYS_MENU_ID :顺序递增即可,

LEVEL_REFERRENCE :则体现了层次关系,

MENU_NAME :为显示的内容,

MENU_PAGE :为链接的指向,一般是每个模块的主页面(上图中有没用数据)

6.设计页面

页面:( page ) 业务信息的表示主体部分,由组件组成。

    点击左边树形列表里的pages,如下图:

在页面名称中填写名称,一般前面为对应的有意义的名称,开头字母大写,后面以Page为后缀,这样便于识别,点击增加按钮增加。

选择相应页面,此时界面如下:

填写组件名称,从组件类型下拉列表里可以选择增加的组件类型,增加相应组件。

选择包含的组件,点击文本框右边的小图标,会有弹出窗口,在列表中选择需要包含的组件,一般不包含按钮,支持文件上传为“否”,特殊除外。

此处需要注意的是:一个page里不能包含两个都支持分页的List组件。

7.Resource

 这个模块是为以后为你写的模块增加用户权限

此处需要注意的是:一个page里不能包含两个都支持分页的List组件。

7.Resource

 这个模块是为以后为你写的模块增加用户权限

此处需要注意的是:一个page里不能包含两个都支持分页的List组件。

阅读全文
0 0

相关文章推荐

img
取 消
img