天天看點

openjweb1.8 java web應用快速開發平台操作手冊第一章 公用功能第二章 快速開發第三章 内容管理第四章 手機短信第五章 工作流第六章 線上考試/線上問卷第七章 檔案管理子系統

 說明:因圖檔較多,帶圖檔的完整文檔請從http://code.google.com/p/openjweb/downloads/list

中下載下傳openjweb18.rar

OpenJWeb(1.8) Java Web應用快速開發平台

使用者操作手冊

編者:OpenJWeb技術團隊

編寫時間:2009-10-06

Email:[email protected]

QQ:29803446

Msn:[email protected]

聯系人:王先生

手機:13651070328

目 錄

第一章 公用功能.... 4

1.1 登入系統... 4

1.2 背景首頁說明... 5

1.3 電子郵箱... 6

1.3.1 個人郵箱參數配置... 6

1.3.2  寫郵件... 7

1.3.3 收郵件... 9

1.3.4 垃圾箱... 10

1.3.5 系統郵箱設定... 10

1.3.6 郵件發送隊列... 11

1.4 線上交流... 11

1.5 内部論壇... 12

1.6 修改密碼... 13

1.7 個人資訊... 13

1.8 登出... 13

第二章 快速開發.... 14

2.1 子系統定義... 14

2.2 資料字典... 15

2.2.1 資料字典類型... 15

2.2.2 資料字典... 16

2.3 表結構定義... 17

2.4 功能定義... 23

2.4.1 定義功能頁面... 23

2.4.2 生成代碼... 24

2.4.3 平台生成的各種頁面... 25

2.5 權限與功能菜單定義... 28

2.6 組織結構、角色、使用者管理... 29

2.6.1 機關基本資訊維護... 29

2.6.2 系統角色管理... 29

2.6.3 組織結構維護及授權... 31

2.7 資料權限... 34

2.8 字段校驗器二次開發... 37

2.9 日志管理... 38

2.10 髒資料管理... 40

2.11 表字段限制關系設定... 41

第三章 内容管理.... 42

3.1 欄目管理... 42

3.2 資訊管理... 42

3.3 全文檢索引擎... 43

第四章 手機短信.... 44

第五章 工作流.... 44

第六章 線上考試/線上問卷.... 45

第七章 檔案管理子系統.... 47

第一章 公用功能

公用功能包括登入、登出、修改個人密碼、基本資訊、電子郵件、線上交流、電子論壇等功能,這些功能所有登入使用者都可以使用,不需要授權。

1.1 登入系統

按照本産品的安裝手冊部署完成後,啟動tomcat成功後,可通路http://localhost:8088/crm

預設的登入使用者名和密碼:

(1) 系統管理者為 admin  123456

(2) 檔案管理者為 dms dms

(3) 進銷存使用者為 erp erp

下面是登入頁面:

圖1-1 使用者登入頁面

頁面中輸入使用者名和密碼,支援回車切換使用者名、密碼、登入。如果輸入的使用者名或密碼錯誤,頁面會出現提示資訊,見下圖:

圖1-2 登入頁面錯誤提示

頁面上的取消按鈕用于重置使用者名和密碼。

1.2 背景首頁說明

圖1-3 OpenJWeb平台背景首頁樣式

(1) 機關的logo圖示

   機關的logo圖示目前藍色空白圖檔,使用者可用自己的圖示替換D:/project/openjweb/webapps/apps/images/name.jpg。

(2) 背景首頁中最上面一排按鈕為所有使用者都需要使用的公用功能。

   首頁按鈕:點選後回到上面的頁面。

   電子郵箱:點選後打開郵件管理,郵件管理具有郵件群發和郵件接收功能。

   員工交流:與本機關内部的任一使用者線上溝通。

内部論壇:與jforum開源論壇産品內建,點選後可跳轉到論壇首頁。

修改密碼:修改目前登入使用者的密碼。

個人資訊:修改目前使用者的基本資訊。

登出:登出目前登入,安全傳回到登入頁面。

(3)頁面左側為功能菜單樹,點選标簽後會展開具體功能菜單。點選功能菜單右側的黑色箭頭可用于隐藏/取消隐藏左側的功能菜單樹。

(4)頁面内容區用于展示具體的功能頁面。背景首頁中的幾個内容視窗包括:

     最新檔案—用于檔案系統中顯示最新歸檔的檔案。

     待辦事項—目前用于檔案系統中展示哪些檔案需要歸檔、審批以及檔案到期提醒。

     最新新聞—當背景釋出最新新聞時,可在這裡展示。

     最新郵件—展示使用者接收的沒有閱讀的最新郵件。

     公告欄—當背景釋出公告時,在這裡展示最新公告。

     員工交流—顯示其他使用者向登入使用者發送的,且目前使用者沒有閱讀的消息。

1.3 電子郵箱

1.3.1 個人郵箱參數配置

在本平台中,可為一個使用者設定多個郵箱。使用者在使用郵件收發功能前,需要先設定自己的有效的電子郵箱帳号。設定電子郵箱帳号的功能在功能菜單樹的郵件管理功能下的”個人郵箱設定”,見下圖:

圖1-4 個人郵箱配置(清單頁面)

圖1-5 個人郵箱配置(編輯頁面)

1.3.2  寫郵件

說明:在上圖1-5個人郵箱配置編輯頁面中,優先級和自動收取暫不使用,可不填寫。配置好個人郵箱參數後,點選頁面上方首頁按鈕右側的“電子郵箱”,顯示下面的頁面:

圖1-6 點電子郵箱後顯示的頁面

上圖中,下拉框中顯示的是圖1-5中配置的郵箱,如果配置多個郵箱,則顯示多個郵箱清單,使用者可選擇其中一個郵箱收發郵件。我們現在點“寫郵件”,會顯示寫郵件清單頁面,見下圖:

圖1-7 寫郵件的清單頁面

上圖中點“新郵件”,打開郵件編寫頁面:

圖1-8 寫郵件頁面

說明:

(1) 發件人和郵件标題可随便填寫。

(2) 收件人郵箱之間用半角單引号分隔。

(3) 是否使用系統發件箱:選擇是,則使用系統郵箱定時發送,當郵件接收人太多時可選擇系統發件箱。如果選擇否,則可直接發送,不需要使用系統發件箱。

(4) 發送狀态:不需要填寫。

(5) 郵件狀态:分草稿和已發送狀态,不需要錄入。當郵件儲存時為草稿狀态,當發送郵件時為已發送狀态。

(6) 郵件群組:目前郵件群組隻可從系統中已注冊的使用者清單中選取。

(7) 附件:頁面提供了5個附件上傳選擇框。

(8) 正文編輯:支援html格式的正文編輯。

(9) 功能按鈕:包括儲存、收件人、發送、關閉視窗。收件人目前隻可選擇目前注冊的帳号,且選擇收件人之前需要儲存郵件。

1.3.3 收郵件

下圖是收郵件頁面:

圖1-9 收郵件頁面

說明:

(1) 删除按鈕用于将郵件删除放到資源回收筒中。

(2) 永久删除:永久性地删除郵件,不可恢複。

(3) 收郵件:收取目前郵箱的郵件。郵件收取後,郵件伺服器中的郵件會被删除,收取後郵件會存在本地伺服器中。郵件收取到本地後,郵件狀态為未讀狀态。打開郵件後變為已讀狀态。未讀狀态的郵件會在背景首頁的最新郵件中顯示,見下圖:

圖1-10 背景首頁的最新郵件

點最新郵件的标題,顯示郵件檢視頁面,見下圖:

圖1-11 檢視接收的郵件頁面

1.3.4 垃圾箱

當收件箱中的郵件被删除後會放到垃圾箱中,在垃圾箱中可執行郵件的永久删除和取消删除。取消删除就是将郵件從資源回收筒中恢複到收件箱。下圖是垃圾箱頁面:

圖1-12 郵件管理-垃圾箱

1.3.5 系統郵箱設定

此功能位于郵件管理—系統郵箱設定。如果郵件發送選擇了隊列發送的方式,則使用系統郵箱發送郵件。

1.3.6 郵件發送隊列

當使用隊列發送方式發送郵件,在發送時不直接向郵件接收人發送郵件,而是将收件人清單拆分成對應的多封郵件,放到郵件發送隊列中由郵件發送定時器定時發送,如果發送失敗,可以将郵件的發送狀态改為隊列狀态便可在下次定時到達後嘗試再次發送。下面是郵件發送隊列清單頁面:

圖1-13 郵件發送隊列

1.4 線上交流

本平台提供了登入使用者之間在Web頁面中實時溝通的功能。此線上交流工具的特點:基于純Web頁面實作的即時通訊,不需要安裝任何其他協定和插件,聊天時頁面不需要重新整理。如果對方離線,對方在下次登入系統會從背景首頁的員工交流中看到離線資訊。下面是背景首頁中顯示的離線資訊:

圖1-14 背景首頁中顯示的離線資訊

上圖是dms使用者對admin使用者發出的聊天消息,因為聊天時admin沒有登入,是以顯示了一條離線資訊,admin點選此檢視了此消息後,未讀消息變成已讀,下次不再顯示。下面是實時溝通頁面:

圖1-15 實時溝通頁面

1.5 内部論壇

内部論壇使用開源Jforum論壇産品,本平台實作了與Jforum的單點登入內建。下面是電子論壇頁面:

圖1-16 電子論壇頁面

1.6 修改密碼

下圖是目前使用者修改密碼頁面:

圖1-17 修改密碼頁面

1.7 個人資訊

使用者點背景首頁的個人資訊,可自己維護個人基本資訊。見下圖:

圖1-18 個人基本資訊維護頁面

1.8 登出

在背景首頁中點登出實作安全退出,傳回到使用者登入頁面。

第二章 快速開發

本章介紹Openjweb1.8快速開發平台的具體功能。下面将按照開發步驟進行介紹。

2.1 子系統定義

在開發新的子系統之前,需要先配置這個子系統的struts2配置檔案。例如現在我們要開發一個erp子系統,需要按照以下步驟進行:

(1) 在D:/project/openjweb/src/java目錄下找到struts-template.xml檔案,複制這個檔案,并将複制後的檔案命名為struts-erp.xml。

(2)打開這個struts-erp.xml,内容如下:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="subsystem" extends="struts-default" namespace="/subsystem">

        <!-- insert new action -->

     </package>

</struts>

将兩個subsystem更名為erp,然後儲存。注意<!-- insert new action -->不要删除。

(3)打開此目錄下的struts.xml,添加struts-erp.xml聲明,見下面struts.xml檔案的部分内容:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <include file="struts-default.xml"/>

   …

    <include file="struts-mem.xml"/>

    <include file="struts-erp.xml"/>

    <!-- <include file="struts-groovy.xml"/> -->

</struts>

(4)打開系統管理下的子系統管理頁面,見下圖:

圖2-1 子系統定義

需要說明的是,系統編碼的命名規則為大寫英文字母,例如erp系統的子系統編碼為ERP;另外上圖2-1中的Java Package名指的是子系統存放平台生成的java代碼的路徑,如果java package為空,則預設為org.openjweb.core,如果不為空,例如erp子系統的java package名字為com.openjweb.erp,則系統自動建立D:/project/openjweb/src/java/com/openjweb/erp路徑,當在這個子系統下生成代碼時,此目錄下還會生成service、entity、action子目錄。分别用于存放業務邏輯接口及實作類源代碼、java實體類源代碼和hibernate映射檔案、struts2控制層代碼。

平台生成的jsp檔案的路徑位于D:/project/openjweb/webapps/WEB-INF/jsp目錄下,erp系統的jsp目錄則位于jsp/erp。

2.2 資料字典

在系統開發的過程中需要經常設定編碼表以便統一資料編碼,例如學曆編碼用01代表大學學曆,02代表高中學曆,則開發前需要将學曆編碼的設定錄入到系統中,在這裡,學曆代表資料字典類型,01(大學),02(高中)代表學曆資料字典類型下的資料字典項。

2.2.1 資料字典類型

資料字典類型的菜機關于系統設定—資料字典類型。下面是資料字典類型的定義頁面:

圖2-2 資料字典類型定義頁面

在上圖中,如果不設定查詢字典項sql,則系統預設為從comm_dict表讀取資料字典項,對于學曆資料字典類型,平台預先定義了學曆的資料字典類型編碼為HR_XUELI,對應的資料字典項的SQL為: SELECT DICT_CODE,DICT_NAME FROM COMM_DICT WHERE  DICT_TYPE_CODE='HR_XUELI'。也可以指定其他的表作為資料字典項的代碼/名稱清單,例如省份資料字典類型(PROVINCE)指定了從ncme_district中查詢城市編碼和名稱:

select district_id,district_name from ncme_district where parent_id='ncme'

2.2.2 資料字典

此功能位于系統設定—資料字典。頁面見下圖:

圖2-3 資料字典

2.3 表結構定義

當資料庫表結構确定後,可以在本平台上直接定義表和表字段,并生成表結構及對應的java實體類檔案、hibernate映射檔案。下面是表結構聲明的頁面:

圖2-4 表結構聲明

表結構聲明指的是定義資料庫表名、對應的實體類名、此表隸屬的子系統、是否針對此表生成業務邏輯層代碼和實作類、是否樹形的表結構等資訊。表字段的定義在下面的表字段定義功能中說明。注意表名必須全部為小寫。

下面是表字段定義頁面(功能菜單為系統管理—表字段定義):

圖2-5 表字段定義頁面

圖2-6 表字段定義的資料庫屬性标簽

圖2-7 表字段定義的頁面屬性标簽

當在表結構定義功能中聲明了資料庫表以後,需要使用表字段定義功能來定義表的字段,例如在表結構定義中聲明了醫生基本資訊表(crm_doctor),則需要在表字段定義中定義醫生基本資訊表的字段。下面介紹表字段定義中資料庫屬性:

資料庫屬性 說明 示例 備注
表名 資料庫表名 醫生基本資訊
表字段名 表字段名 city_id 字段名必須全部為小寫
表字段中文名 表字段中文名 所在城市 同時用作頁面中的列标簽文字
表字段說明
類字段名 表字段對應的類屬性 cityId 根據表字段名自動生成類字段名
字段類型 目前定義了Clob,小數,整數,字元串,日期類型 目前不支援日期類型,這裡選擇日期類型實際也生成字元串類型字段,隻是生成頁面是會生成日期選擇元件。
字段長度 對于字元串,數字類型都要填寫長度。
小數位數
是否必填 如果選擇為“是”,則綁定字段校驗器後,儲存時如果沒輸入值,則提示字段不能為空。
預設值規則 可以選擇多種預設值規則 選擇不同的預設值規則,則此字段在新增記錄時會自動按規則生成初始值
是否導出EXCEL 如果不填或者選擇為是,則導出EXCEL時此列在EXCEL中顯示 如果選擇“否”則不顯示
擷取顯示值SQL 用于導出EXCEL時,将編碼值轉換為名稱值的SQL
擷取編碼值SQL 用于EXCEL導入資料庫時,将名稱值轉換為編碼值。
是否EXCEL主鍵 相當于業務主鍵,導入時根據EXCEL主鍵是否重複來标志為新記錄還是已存在記錄,如果是已存在記錄,則導入時可選擇是否覆寫。 一個表可标記多個EXCEL主鍵。
是否編碼字段 許多表都有編碼字段和名稱字段,如果生成樹結構表必須有唯一一個編碼字段 例如機關編碼、機關名稱
是否為名稱字段 如果為樹結構表必須至少有唯一一個名稱字段
是否樹分類字段 樹分類字段是在樹清單頁面中的下拉選擇框,選擇不同下拉項顯示不同的樹
正規表達式 用于頁面校驗 當字段被綁定正規表達式校驗器時,使用這裡的正規表達式進行校驗,例如醫生姓名的正規表達式要求隻能輸入中文。醫生姓名正規表達式:^[/u4e00-/u9fa5]+$

頁面屬性說明:

頁面屬性用于建立此表對應的增删改查頁面的時候使用。

頁面屬性 說明 示例 備注
頁面輸入方式 如為空,則預設生成文本輸入框 複選框和單選按鈕暫時不能使用。
資料字典類型 為字段綁定資料字典類型。如選擇了資料字典類型,則生成的編輯頁面,此列為下拉清單。 例如為HR的履歷表的學曆字段綁定一個學曆資料字典類型,則生成的錄入頁面中,學曆字段自動顯示資料字典中定義的學曆清單
清單頁顯示 是否在清單頁面中顯示
編輯面顯示 是否在編輯頁面中顯示
清單頁顯示順序 暫不使用,統一使用編輯頁顯示順序
編輯頁是否顯示 設定字段是否在編輯頁面中顯示 如果不顯示,則生成隐藏字段
彈出視窗 如果頁面輸入方式中選擇了彈出視窗,則這裡指定使用哪個彈出視窗 例如入庫單中商品編碼輸入需要參照商品基本資訊,這時需要使用彈出視窗,不能使用下拉清單,因為資料量很大。
是否查詢條件列 如果是查詢條件列,則生成頁面時在清單頁中顯示一個查詢條件列 查詢條件列的輸入方式會根據設定自動生成輸入框或日期、下拉、彈出。
定制查詢列 如果設定為定制查詢列,則在定制查詢時顯示此字段
韓文列标簽 不同語種的标簽文字 這裡輸入了多語種标簽文字,在生成頁面的同時會自動生成對應的資源檔案,這樣對于國際化不需要手工編寫和編譯國際化資源檔案。
英文列标簽
日文列标簽

以上字段資訊定義完成并儲存後,再打開表結構定義頁面,勾選一個資料庫表,點“建表”,則平台會執行以下操作:

(1)建立了資料庫表結構。

(2)生成了java實體類源代碼檔案。實體類源代碼位于對應子系統的entity目錄下。

(3)生成了hibernate映射檔案(.hbm.xml)。hibernate映射檔案也位于對應子系統的entity目錄下。

(4)在core-service-demo.xml中添加了此hibernate映射檔案的聲明。具體見D:/project/openjweb/src/java/core-service-demo.xml。

如果在生成表結構定義中,設定了“是否建立業務邏輯類”為“是”,則建表時除了生成實體類和hibernate映射類檔案,還生成業務邏輯接口和實作類,并自動在core-service-demo.xml中配置了帶事務支援的spring bean。例如會員表為mem_person,建表時由于設定了建立業務邏輯類,則在D:/project/openjweb/src/java/com/openjweb/mem/service目錄下建立了接口檔案IMemPersonService.java,并在D:/project/openjweb/src/java/com/openjweb/mem/service/impl目錄下生成了ImemPersonService的實作類MemPersonServiceImpl.java,并且core-service-demo.xml中自動添加對應的spring bean的配置,增加的配置設定了聲明式事務攔截器,在ImemPersonService中聲明的所有方法将都支援事務處理。core-service-demo.xml中生成的配置如下:

    <bean id="IMemPersonService" parent="txProxyTemplate1">

        <property name="target">

            <bean class="com.openjweb.mem.service.impl.MemPersonServiceImpl">

                <property name="dbService" value="IDBSupportService3"/>

            </bean>

        </property>

    </bean>

表字段定義中不需要指定主鍵、日期時間戳、建立人等字段。系統會預設生成pk_id(主鍵)、唯一行号(row_id)、建立時間create_dt,修改時間update_dt,建立人create_uid,修改人update_uid等字段,對于樹結構表還生成tree_code字段。表結建構立時,系統自動建立這些字段的定義資訊。

新增表字段:

在表字段定義清單頁面的資料行中有一個“生成字段”的連接配接,這個功能的作用是當資料庫表已經建立以後,如果還需要增加新字段,則錄入新的字段定以後,點“生成字段”,可在資料庫表中增加新的字段,另外還會在java實體類檔案中新增類屬性的聲明及set和get方法,同時hibernate映射檔案中會增加此字段的配置。

表字段校驗器:

在表字段定義清單頁面的資料行中有一個“字段校驗器”的連接配接,用于為錄入或修改資料時的字段校驗,在本平台中,大部分字段校驗可通過為字段配置字段校驗器的方式實作,不需要修改jsp檔案,下面是字段校驗器配置頁面:

圖2-8 字段校驗器

下面分别介紹各字段校驗器的作用:

序号 字段校驗器名稱 作用
1 資料格式校驗器 校驗字段長度(與資料庫字段長度比對)、是否必填等,應為每個頁面上錄入的字段勾選資料格式校驗器。
2 唯一值校驗器 目前字段不允許重複,目前隻支援單列的唯一值判斷。
3 郵箱格式校驗器 判斷輸入内容是否為郵箱格式
4 自定義正規表達式校驗器 在表字段定義中有一個正規表達式,當勾選此校驗器,則儲存時校驗字段錄入内容是否符合正規表達式
5 居民身份證格式校驗器 判斷錄入内容是否符合15或18位的居民身份證格式
6 手機格式校驗器 判斷錄入内容是否符合手機格式
字段首尾禁止空格校驗器 如果字段首尾含空格,則提示錯誤

2.4 功能定義

2.4.1 定義功能頁面

使用本平台的功能定義可為建立的表結構生成對應的增删改查頁面。本平台支援單表、主明細表、樹形結構增删改查頁面的生成。此功能對應的菜單為:系統管理—功能定義。

下面是功能定義的清單頁面:

圖2-9 功能定義清單頁面

圖2-10功能定義編輯頁面

上一節講到表結建構立,在功能定義中可以選擇建立的表建立增删改查頁面,具體操作是:

(1) 建立一條記錄,輸入功能名稱、清單頁面、編輯頁面标題、實體類名中選擇建立的資料庫表。

(2)DB Service Bean不用修改,按系統預設的IDBSupportService3即可。

(3)URL位址也不需要手工維護,儲存後系統會自動根據所屬系統、表名生成url位址。

(4)表單類型:表單類型包括樹形結構、單表、主從-主表、主從-明細表。大多數情況下是使用單表模式建立。如果選擇樹形結構,則上一節中建立表的時候需要勾選“是否樹形結構”為“是”,而且需要在表字段資訊中指定表的代碼列和名稱列。對于主從-主表,主從-明細表的生成稍微複雜一點。例如會員表(mem_person)是主從-主表,會員參加活動情況、會員購物情況、會員客服聯系情況是針對會員表的子表。建立主從表樣式的頁面需要按照以下步驟:

a)首先使用功能定義新增一條記錄,對應資料庫表為會員表,表單樣式為主從-主表。

b)其次分别建立會員活動情況、會員購物情況、會員客服聯系情況三個功能,表單樣式都是主從-子表。

c)打開系統管理-主明細表關系功能頁面,建立三個主明細關系,分别是會員活動、購物、客服,主表都是會員表(mem_person),子表是會員活動、購物、客服三個表,主表關聯字段為row_id,子表關聯字段為master_row_id(系統生成資料庫表時自動生成row_id和master_row_id字段)。下面是主明細關系清單頁面:

圖2-11 主明細關系清單頁面

圖2-12 主明細關系編輯頁面

URL相對位址即功能定義中生成的URL位址,複制過來即可,頁面Tab文字是生成的主明細頁面中的tab頁的标簽文字,row_id和master_row_id是系統預設,不要修改。

2.4.2 生成代碼

以上功能定義完成後,回到清單頁面,點對應行記錄的“生成代碼”即可生成此功能的控制層源代碼檔案和清單頁、編輯頁、彈出視窗頁JSP檔案以及struts2的action配置。對于主明細表,主表和子表頁面都要分别生成,例如上面說的會員主表和活動、購物、客服三個子表都要逐個生成(生成順序不限)。

生成代碼執行完畢後,這時可關閉tomcat,使用D:/project/build/userbuild.bat檔案編譯工程。當然也可以重新整理eclipse工程将最新生成的檔案自動加到工程中由eclipse編譯。不過推薦使用ant編譯,因為ant的編譯速度比較快。平台原先是使用的線上編譯模式,不需要關閉tomcat,但編譯多次後會出現Permgen space溢出的問題,是以改為關閉tomcat後編譯的方式。在生成代碼的過程中會有兩次js腳本提示代碼建立完成等資訊,點确定繼續即可。

此步驟具體生成的代碼包括:

(1)在對應子系統的action目錄下建立了struts2的控制層java源代碼。

(2) 在對應子系統的jsp目錄下分别建立了list開頭的清單頁面和edit開頭的編輯頁面以及popup開頭的彈出視窗jsp頁面檔案。

(3) 自動配置struts2的action,例如struts-mem.xml中生成的會員管理的配置:

      <action name="listMemPerson" class="com.openjweb.mem.action.MemPersonAction" >

            <result>/WEB-INF/jsp/mem/listMemPerson.jsp</result>

            <result name="edit">/WEB-INF/jsp/mem/editMemPerson.jsp</result>

            <result name="login">/login.jsp</result>

            <result name="reject">/accessDenied.jsp</result>

            <result name="wait">/wait.jsp</result>

            <result name="error">/WEB-INF/jsp/comm/error.jsp</result>

            <result name="input">/WEB-INF/jsp/mem/editMemPerson.jsp</result>

            <result name="edit2">/WEB-INF/jsp/mem/editMemPersonRuhui.jsp</result>

            <result name="view">/WEB-INF/jsp/mem/viewMemPerson.jsp</result>

        </action>

注意要在對應子系統的struts2配置檔案中查找新增加的内容。下節介紹平台生成的單表、主明細表、樹形結構三種頁面。

2.4.3 平台生成的各種頁面

1)平台生成的單表增删改查頁面

圖2-13 平台生成的單表增删改查清單頁面

圖2-14 平台生成的單表增删改查編輯頁面

圖2-15 定制查詢

圖2-16 導出EXCEL

平台生成的增删改查清單頁面,包括了查詢條件、定制查詢條件、增加記錄、删除記錄、編輯修改記錄、分頁器、excel導入導出、附件上傳功能。

可以看出,生成上面功能頁面不需要手工編寫java和jsp代碼。附件上傳是針對每條記錄的,也就是說,可以為任何行記錄上傳附件,excel導出導出也是生成的通用功能。分頁器是跨資料庫的,因為分頁器是用hibernate實作的,分頁器支援首頁、末頁、上頁、下頁、總頁數、記錄數顯示、指定跳轉,每頁行數設定等功能。

在編輯頁面和查詢條件列中,如果在表字段中定義的字段輸入方式為日期、下拉、彈出視窗,則相應的字段錄入時分别顯示為日期選擇器、下拉清單框、彈出視窗。

2)平台生成的主明細清單頁面

圖2-17 平台生成的主明細清單頁面

3)平台生成的樹形結構維護頁面

圖2-18 平台生成的樹形結構維護頁面

圖2-18是平台生成的樹形結構維護頁面,可以看出,生成此類的樹形結構維護頁面不需要編寫任何代碼。

2.5 權限與功能菜單定義

當功能定義完成後,需要為此功能定義功能菜單項及權限。本平台中權限基本資訊定義和功能菜單定義是同一個功能。權限使用的是spring security安全架構,隻要在權限基本資訊中定義了某權限對應的URL,則此URL會受到spring security安全架構的保護,如果通路者沒有獲得授權,則不能通路權限定義中定義的url。

背景首頁的左側的功能樹實際是從權限定義中取得CRM_MENU開頭的菜單樹,目前支援兩層功能菜單。權限維護頁面中,所有功能菜單都需要歸屬于“目前Web應用”下拉清單,也就是說,在權限維護頁面中,選擇“目前Web應用”的下拉清單,在此清單對應的功能樹供錄入菜單。如果定義的權限不是功能菜單,則權限編碼字首不要使用CRM_MENU開頭。下面是權限及功能菜單定義的頁面(功能位于:系統管理-權限管理):

圖2-19 權限及功能菜單定義頁面

當上一節生成了功能定義頁面後,粘貼生成功能的url,然後在權限管理中,選擇對應的菜單樹,在此樹下建立子菜單,例如會員基本資訊功能是在會員管理功能下建的子節點,系統自動建立功能菜單編号。将上節功能定義生成的url添加到圖2-19的URL資源中,然後儲存。

此頁面也可以定義非菜單的權限編碼,例如為會員管理頁面的定義了删除權限,如果沒有删除權限,則删除按鈕不可見。會員删除權限的權限編碼定義為AUTH_BTN_MEM001,在頁面中是這樣使用spring security的權限标簽的:

<sec:authorize ifAllGranted="AUTH_BTN_MEM001">

        <input type="button" name="" title="删除會員"  value='<s:text name="button.del"/>' style=" color:#000000; font-size:12px; width:61px; height:20px; padding:3px; border:0px;background-image:url(<%=request.getContextPath() %>/images/bt.gif)" οnclick="doDelete()"/>

        </sec:authorize>

JSP中如果使用Spring security的權限标簽,則需要在jsp頁面中增加:

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

關于Spring Security安全架構的權限标簽的使用方法這裡就不介紹了,可到網上查找具體的使用方法。

    定義好的功能菜單權限或其他權限如何授予給使用者,下面首先介紹組織結構、使用者、角色後再介紹授權的操作。

2.6 組織結構、角色、使用者管理

2.6.1 機關基本資訊維護

此功能位于系統管理—機關基本資訊。下面是機關基本資訊的清單頁面:

圖2-20 機關基本資訊維護

在定義組織結構樹之前需要錄入機關基本資訊,如果使用者隻需要使用一個機關,則可保留C0001本機關,将其他機關删除。

2.6.2 系統角色管理

    此功能位于系統管理—系統角色管理。

此功能維護系統級角色,系統角色是開發時由開發人員預定義的角色,這種角色不具有樹形結構,一般也不由使用者來維護,可預先為系統角色配置設定相關權限,然後在人員授權時,為指定使用者關聯角色,則使用者會間接得到權限。系統角色的編碼不要修改,否則會影響到授權結果。

系統角色還可以用于辨別不同子系統的管理者,例如檔案系統管理者的系統角色為dmsAdminRole,在檔案管理資料授權的SQL中,可直接引用這個角色編碼作為sql的條件。

下面是系統角色管理的清單頁面:

圖2-21 系統角色管理

在此頁面中,勾選一個角色,點頁面上的授權,可為此角色關聯功能權限。下面是為角色授權的頁面:

圖2-22 角色授權頁面

2.6.3 組織結構維護及授權

組織結構維護功能位于:系統管理—組織結構維護。

圖2-23 組織結構維護頁面

首先介紹一下頁面上按鈕的作用:

(1) 添加子節點:選中一個組織結構節點,然後點添加子節點,可為此組織結構節點增加子節點,行政部門、角色、子公司都可以有子節點,目前系統沒有做任何限制。

(2) 添加同級節點:增加所選節點的同級節點。

(3) 人員:當組織結構類型為行政部門時,為所選擇的行政部門添加人員。人員對應登入帳号。

(4) 角色/組成員:當所選節點為“角色”類型,可為此角色關聯人員(登入帳号),一個帳号可與多個角色關聯。

(5) 授權:為目前所選節點配置設定權限。權限規則:當為行政部門授權時,部門直接下屬人員可獲得部門的權限,當為角色授予權限,則此角色關聯的人員可獲得角色的權限。

(6)儲存:儲存組織結構資訊。

(7)删除:删除組織結構節點,如果有下級組織結構節點,則目前節點不可以删除。删除時,資料庫送出和左側樹的重新整理是異步的。添加和修改節點左側組織結構樹都可以同步重新整理。

組織結構類型可以在資料字典中定義,但已經存在的組織結構類型請不要修改。因為資料字典編碼已經使用。

組織結構的授權頁面和角色授權頁面類似,這裡不再介紹。下面介紹人員和角色/組成員兩個按鈕的功能:

人員:

選擇一個部門,點人員按鈕,顯示此部門下目前的人員,見下圖:

圖2-24 部門人員

圖2-24的增加和删除功能就不介紹了。系統角色是為指定使用者關聯上節中介紹的系統角色,見下圖:

圖2-25 使用者-系統角色授權

為使用者配置設定系統角色後,此使用者可獲得系統角色擁有的權限。

權限按鈕用于直接為使用者授權,見下圖:

圖2-26 使用者授權

使用者最終獲得的權限包括:直接給使用者配置設定的權限、使用者關聯系統角色獲得的權限、使用者所屬部門配置設定的權限、使用者關聯角色獲得的權限,在組織結構樹中的角色支援功能權限繼承,如果某部門下建立了角色樹(業務角色,組織結構類型為角色),則下級角色獲得權限,上級角色也可以獲得。

角色/組成員:

    選擇組織結構樹中的角色節點(其他類型節點授予角色/組成員無授權效果),然後點“角色/組成員”,顯示下面頁面(可選擇本機關-檔案管理室-檔案管理者):

圖2-27 角色關聯人員頁面

點上圖的人員,彈出人員選擇頁面,勾選點“确定”後,可将未關聯此角色的人員添加到此角色關聯的人員清單中。上圖的删除是勾選删除角色關聯的人員,不是删除人員的基本資訊。

2.7 資料權限

上面介紹了功能授權,本節介紹資料權限。資料權限的典型例子:在本平台中,使用者接收和發送的郵件正文都存在郵件接收表和發送表中,但不同使用者登入系統隻能看到自己發送或接收的郵件,不可以看到其他人的郵件。

資料權限分兩種情形:

(1)指定一個SQL在定義某表的資料權限規則,例如郵件發件箱定義了${user.loginId}=createUid,${user.loginId}在運作時會轉換稱目前登入帳号’amdin’,這樣sql的規則為createUid=’admin’,及建立人為目前登入帳号’admin’。資料權限的SQL表達式采用hibernate的HQL文法。在表達式中可以使用的一些變量:

${user.loginId} 在運作時用目前登入使用者帳号替換,例如’admin’

${user.comId}用目前使用者所屬公司替換,如’C0001’

${user.deptId}用目前使用者所屬部門替換,如’91152’,使用者所屬部門對應comm_dept表的pk_id。

${user.userId}替換為整型,不帶引号,對應comm_user的user_id。

(2)精确将每一行資料的查詢權限、下載下傳權限等權限授予給指定的角色或人員。

下面是檔案基本資訊的查詢資料權限定義頁面,不具有權限的使用者看不到對應的記錄,檔案管理者可看到所有記錄。此權限定義sql包含了角色資料權限和使用者資料權限的授權規則,見下圖:

圖2-28 資料權限清單頁面

圖2-29 資料權限編輯頁面

說明:條件規則設定為1=1即可,表示所有使用者都适用的權限規則。過濾語句是過濾語句1-7合并起來的hibernate HQL語句,因為考慮到有的關系資料庫不支援超過255的變長字元串,是以使用了7個過濾語句。當打開清單頁面時,系統會自動查找對應功能的資料權限設定,找到資料權限規則後則将資料權限SQL附件到原有的查詢語句中,最終查出的結構為目前使用者有權限檢視的資料。使用者和角色的授權可參考圖2-28的檔案基本資訊(操作類型為查詢)。

上面的資料權限設定是要求使用者配置角色資料權限和使用者資料權限,平台使用者可用dms/dms登入,打開權限管理的收集整編,見下圖:

圖2-30 檔案基本資訊清單

我們可以看到上圖中每個檔案都有角色授權和使用者授權連接配接,我們看一下角色授權連接配接打開的頁面:

圖2-31 角色授權清單頁面

圖2-31是選擇某行檔案後,為檔案的浏覽查詢權限設定的角色,從清單中可以看出,授權可以精确設定給不同使用者,并且為不同使用者指定是否使用權限有效期控制,如果設定了權限有效期控制則過期權限時效,另外還可以啟動通路次數控制。是以說本平台中對于資料權限的控制是很細緻的。

使用者資料權限控制和角色資料權限類似,隻是授權對象為使用者而不是角色,在這裡定義了角色資料權限後,上面配置的檔案管理資料權限SQL是讀取此功能配置的資料。

在這裡順便說明一下,角色資料權限對應comm_data_auth_role表,使用者資料權限對應comm_data_auth_user表。

使用者除了查詢權限外,還可以自定義附件下載下傳、借閱等與具體業務相關的針對行記錄的操作,并針對這些操作設定資料權限,例如檔案管理中可以控制為具體的檔案配置可借閱的角色或使用者。參考工作流—資料權限碼定義:

圖2-32 為具體的表定義資料權限碼

圖2-32中定義了檔案基本資訊的浏覽、下載下傳 、借閱資料權限編碼,其實如果業務有需要,還可以定義删除、編輯或其他資料權限碼,并可參考檔案的查詢權限實作其他資料權限控制邏輯。

2.8 字段校驗器二次開發

除了本平台預置的校驗器外,使用者還可以開發自己的字段校驗器,開發新的字段校驗器都需要繼承Ivalidator接口,并錄入到字段校驗器表中,見下圖(系統管理-字段校驗器):

圖2-33 字段校驗器定義頁面

2.9 日志管理

由于不同的項目對日志需要記錄的内容不同,是以本平台大部門操作沒有記錄日志,目前檔案管理系統的部分操作增加了寫日志的代碼。見下圖:

圖2-34 日志管理清單頁面

圖2-35  日志管理檢視頁面

圖2-35 日志管理編輯頁面

2.10 髒資料管理

平台提供了髒資料清理功能,使用者可以自己定義髒資料清理的SQL。由于在開發或使用過程中,經常出現基本資訊已經删除,但還有關聯基本資訊的記錄存在,由于相關表沒有增加實體主外鍵導緻髒資料産生。例如删除了權限基本資訊但權限-使用者關系沒有删除。有時候資料庫表之間不友善加主外鍵,是以可使用髒資料管理功能手工清理髒資料。下面是髒資料管理的清單頁面(功能位于:系統管理—髒資料管理):

圖2-36 髒資料管理清單頁面

2.11 表字段限制關系設定

在資料庫設計時,雖然理論上我們需要為具有資料限制關系的表字段間建立主外鍵關系,但實際上不可能所有的有資料引用關系的表字段都友善建立主外鍵限制,是以平台提供了一個邏輯主外鍵定義功能,在删除時可以檢查表字段值是否被其他表字段引用,如果被引用,則不允許删除基本表的記錄。(這種情況下,相關字段的值的修改在程式上也需要控制,一般作為邏輯限制的字段值是不做修改的,例如資料字典編碼),下面是表字段限制關系設定表(功能位于:系統管理:表字段限制關系設定):

圖2-37 表字段限制關系設定

圖2-37定義了主表字段和子表字段的限制關系,附加where條件是關聯的附件條件,例如上圖的第一行的意思是主表資料字典的dictCode字段與子表(檔案分類)的docType建立了關聯,基本關聯條件為a.dictCode=b.docType and a.dictTypeCode='DMS_DOC_TYPE'。(紅字部分是Where條件。A表示主表,b表示子表)。如果資料字典中删除某個記錄,則系統會檢查此記錄的dictCode字段的值有沒有被子表的某記錄的對應字段引用,如果被引用,則删除失敗。

說明:限制方式選擇禁止删除,其他限制方式平台暫未實作。

第三章 内容管理

内容管理包括欄目管理、資訊管理、搜尋引擎全文檢索等内容。

3.1 欄目管理

此功能位于新聞管理—新聞類别管理。下面是欄目管理的維護頁面。

圖3-1 欄目管理維護頁面

因背景首頁中隻有兩個小視窗是用作最新新聞和最新公告,是以這裡暫時隻定義了兩個欄目。

3.2 資訊管理

資訊管理的背景清單頁面:

圖3-2 資訊管理的背景清單頁面

說明:點選欄目樹會切換對應欄目下的資訊清單,點資訊清單的編輯顯示資訊編輯頁面,見下圖:

圖3-3 資訊管理的編輯頁面

在清單頁面中,如果勾選信後點“資訊釋出”,則資訊則會改為已釋出的狀态。背景首頁對應欄目可以看到釋出的資訊。另外資訊釋出時,會同時生成靜态頁面,生成的靜态頁面會存放到指定的目錄下由搜尋引擎定時構造全文檢索索引。

3.3 全文檢索引擎

當資訊釋出後,生成html靜态頁面,靜态頁面預設生成位置為D:/project/openjweb/webapps/pubinfo。平台預設為每半小時對pubinfo下面的檔案重新構造索引。目前支援word,text,html格式全文檢索.(pdf格式也支援,由于pdf格式的全文檢索會産生大量臨時檔案,是以平台暫時屏蔽了對pdf的全文檢索)。全文檢索的url位址為http://localhost:8088/crm/search/search.jsp,目前暫未對search.jsp搜尋頁面進行美工處理。下面是core-service-demo.xml中配置的定時全文搜尋引擎:

   <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

        <property name="triggers">

            <list>

                <!--作業排程器,list下可加入其他的排程器-->

                <ref bean="defaultTrigger"/>

                <ref bean="luceneTrigger"/>  <!—全文檢索引擎-->

                <ref bean="mailTrigger"/> 

                <ref bean="DMSTrigger"/>  <!--檔案管理系統定時器-->

                <!-- <ref bean="smsTrigger"/>  -->

            </list>

        </property>

    </bean>

下面定義了每半小時重構一次索引:

   <bean id="luceneTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

        <property name="jobDetail" ref="luceneTimerMethod" />

        <property name="cronExpression" value="0 1/30 * * * ?" />

    </bean>

第四章 手機短信

本平台提供手機短信群發隊列管理功能。手機短信發送有兩種方式:

(1)編寫短信後,由安裝在伺服器的手機短信發送裝置發送短信。這種情況需要在平台中內建短信發送驅動程式。

(2)使用短信服務營運商提供的URL位址,本平台負責将手機号、短信内容發送到指定的URL位址即可。

第五章 工作流

本平台目前提供了簡單的工作流配置。具體文檔見http://code.google.com/p/openjweb/downloads/list 位址中的workflow.rar (簡易審批工作流)。圖形化的工作流定義工具和工作流引擎将在2.0版本中推出。

第六章 線上考試/線上問卷

本平台提供了問(試)卷定義、問題及選項、标準答案、分數定義等功能。使用者可線上答題,答題後除問答題外,系統可自動比對标準答案進行評分。本章隻大緻介紹功能,不做具體操作的講解。具體功能見CRM下的各菜單。

圖6-1 問題定義(試題題幹)

圖6-2 定義問題的選項

圖6-3 定義問卷

圖6-4 為問卷選擇試題

圖6-5 問卷預覽

第七章 檔案管理子系統

檔案管理子系統的操作說明将另文叙述。  

轉載于:https://www.cnblogs.com/ajuanabc/archive/2009/10/07/2462694.html