亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種web應用開發(fā)方法及系統(tǒng)的制作方法

文檔序號:6585205閱讀:148來源:國知局
專利名稱:一種web應用開發(fā)方法及系統(tǒng)的制作方法
技術領域
本發(fā)明涉及業(yè)務處理技術領域,特別是涉及一種web應用開發(fā)方法及系統(tǒng)。
背景技術
為了應對日益激烈的市場競爭,提高自身管理水平,各行業(yè)信息化建設步伐不斷加快。這給眾多的軟件提供商帶來了更多的市場機會。但隨之而來的市場競爭也越來越激 烈,軟件廠商為了在激烈的市場競爭下生存,只有更快、更好地為用戶提供軟件服務,才能 在市場中立足。目前,企業(yè)級應用已經(jīng)從傳統(tǒng)的C/S結構過渡到了 B/S結構,B/S結構的應用主要 優(yōu)勢有訪問方式簡單,用戶只需要通過瀏覽器就能訪問應用;升級部署方便,可集中在服 務端完成。B/S結構的web應用主流開發(fā)技術有.NET和JavaEE。其中JavaEE針對企業(yè) 級應用各方面的需求,定義了比較完整的技術體系結構和相應的標準,例如JSP、Servlet, EJB、JDBC、JMS等等。近年來,開源社區(qū)基于JavaEE的標準又提供了非常多功能強大、靈活 易用的應用中間件,例如Struts、Spring、Hibernate等,使得企業(yè)級應用開發(fā)更加成熟,也 使得JavaEE成為主流的企業(yè)級應用開發(fā)技術之一。JavaEE是一個開放的標準體系,實現(xiàn)其標準的中間件很多,例如實現(xiàn)JSP、 Servlet標準的應用服務器有Tomcat、JB0SS、Webl0giC等等。通常,在企業(yè)級應用開發(fā)中, 需要使用這些中間件,在其基礎上開發(fā)業(yè)務邏輯。對應的開發(fā)過程步驟如下開發(fā)JSP或Servlet 用于展現(xiàn)業(yè)務數(shù)據(jù),提供用戶交換界面等,例如在人力資源 管理系統(tǒng)中顯示人員基本信息;開發(fā)EJB或JavaBean 用于實現(xiàn)業(yè)務邏輯,例如編寫如何 獲取人員基本信息的邏輯;使用關系型數(shù)據(jù)庫維護業(yè)務數(shù)據(jù);業(yè)務應用系統(tǒng)開發(fā)完成后, 將應用打包部署到應用服務器上運行,例如TomCat、Jboss等。JavaEE體系中具體的標準是為了適用于各種各樣的業(yè)務應用開發(fā)而建立的,通用 性較強而針對性較差,對于特定技術問題沒有提出簡潔的解決方案,使得基于其開發(fā)應用 的效率比較低下。例如實現(xiàn)企業(yè)應用中經(jīng)常會使用到的文件上傳下載功能時,需編寫大量 代碼。為了解決上述問題,目前,Java開源社區(qū)非常活躍,很多開源項目在JavaEE標準 的基礎上提供了更易于企業(yè)應用開發(fā)的中間件產(chǎn)品。例如,Struts、Spring和Hibernate, 分別解決展現(xiàn)和邏輯、應用啟動和模塊組裝、數(shù)據(jù)持久化等企業(yè)應用開發(fā)中經(jīng)常面對的技 術問題。將這些開源框架進行合理組合可以搭建出企業(yè)應用開發(fā)框架,簡化開發(fā)過程。通常,開源框架都有一些對應的工具來輔助開發(fā),以便于開發(fā)人員更快地進行開 發(fā),例如=Hibernate的開發(fā)工具提供了從數(shù)據(jù)庫表生成映射文件和Java代碼文件的功能, Struts的開發(fā)工具可以實現(xiàn)頁面與后臺控制器的映射等等??墒牵煌_發(fā)工具之間沒有 關聯(lián)性,開發(fā)時需要在各種工具間不停切換,并需要將在各工具上生成的代碼與原有系統(tǒng) 代碼進行聯(lián)調,從而影響了整體開發(fā)效率。

發(fā)明內容
有鑒于此,本發(fā)明的目的在于提供一種web應用開發(fā)方法及系統(tǒng),能夠從整體上 提高web應用的開發(fā)效率。為實現(xiàn)上述目的,本發(fā)明提供了如下方案一種web應用開發(fā)方法,包括接收用戶在可視化界面上輸入的基本設置信息;根據(jù)所述基本設置信息,讀取預置的基礎框架所需的信息,并添加到所述預置的 基礎框架中相應的位置,為web應用中的各業(yè)務模塊生成業(yè)務代碼,所述業(yè)務代碼包括展 現(xiàn)層、邏輯層及持久層代碼。優(yōu)選的,還包括接收用戶在可視化界面上輸入的權限設置信息;建立所述權限設置信息與相應的業(yè)務模塊之間的關聯(lián)關系。優(yōu)選的,還包括接收用戶在可視化界面上輸入的工作流設置信息;根據(jù)所述工作流設置信息,將各業(yè)務模塊中的業(yè)務代碼組合起來實現(xiàn)業(yè)務流程 化。優(yōu)選的,所述業(yè)務模塊還包括具有增加、刪除、修改及查找功能的模塊。優(yōu)選的,還包括接收用戶對生成的業(yè)務代碼的修改指令;利用所述修改指令更新所述生成的業(yè)務代碼。一種web應用開發(fā)系統(tǒng),包括第一接口單元,用于接收用戶在可視化界面上輸入的基本設置信息;代碼生成單元,用于根據(jù)所述基本設置信息,讀取預置的基礎框架所需的信息,并添加到所述預置的基礎框架中相應的位置,為web應用中的各業(yè)務模塊生成業(yè)務代碼,所 述業(yè)務代碼包括展現(xiàn)層、邏輯層及持久層代碼。優(yōu)選的,還包括第二接口單元,用于接收用戶在可視化界面上輸入的權限設置信息;權限生成單元,用于建立所述權限設置信息與相應的業(yè)務模塊之間的關聯(lián)關系。優(yōu)選的,還包括第三接口單元,用于接收用戶在可視化界面上輸入的工作流設置信息;業(yè)務流程化單元,用于根據(jù)所述工作流設置信息,將各業(yè)務模塊中的業(yè)務代碼組 合起來實現(xiàn)業(yè)務流程化。優(yōu)選的,所述業(yè)務模塊還包括具有增加、刪除、修改及查找功能的模塊。優(yōu)選的,還包括第四接口單元,用于接收用戶對生成的業(yè)務代碼的修改指令;代碼更新單元,用于利用所述修改指令更新所述生成的業(yè)務代碼。根據(jù)本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術效果本發(fā)明能夠接收用戶在可視化界面上輸入的基本設置信息;然后,利用預置的基 礎框架及所述基本設置信息,為web應用中的各業(yè)務模塊生成業(yè)務代碼,所述業(yè)務代碼包括展現(xiàn)層、邏輯層及持久層代碼。因此,用戶使用同一工具就可以自動生成展現(xiàn)層、邏輯層 及持久層的業(yè)務代碼,而不用在多個不同的工具中進行切換,更不用手動將各個不同工具 生產(chǎn)的業(yè)務代碼組合起來,因此,從整體上提高了 web應用的開發(fā)效率。
另外,通過基礎框架、權限平臺和工作流平臺的組合,利用本發(fā)明實施例提供的方 法,既可以搭建企業(yè)應用開發(fā)的技術框架,以便于業(yè)務開發(fā)和擴展,又能提供更高級的通用 業(yè)務服務來進一步簡化開發(fā),從而實現(xiàn)了快速構建高質量企業(yè)級web應用的目的。


圖1是本發(fā)明實施例提供的方法的流程圖;圖2是本發(fā)明實施例提供的系統(tǒng)的示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實 施方式對本發(fā)明作進一步詳細的說明。參見圖1,本發(fā)明實施例提供的web應用開發(fā)方法包括以下步驟SlOl 接收用戶在可視化界面上輸入的基本設置信息;在本發(fā)明實施例中,將為用戶提供了可視化的界面,用戶可以在該可視化界面上 配置式地輸入基本設置信息,這些基本設置信息包括業(yè)務模塊的業(yè)務數(shù)據(jù)以及數(shù)據(jù)間的關 系等,例如人員管理模塊中部門、人員數(shù)據(jù),其中一個部門對應多個人員。用戶在所述可視 化界面上可以通過點擊或拖拽等操作,來實現(xiàn)基本設置信息的輸入。其中,所述可視化界面是指提供給用戶的可用于編輯業(yè)務數(shù)據(jù)和數(shù)據(jù)關系的界 面,業(yè)務數(shù)據(jù)中包含具體的屬性數(shù)據(jù),例如人員數(shù)據(jù)中包括姓名、年齡、學歷等屬性數(shù)據(jù)。業(yè) 務數(shù)據(jù)以類似word表格的方式進行展現(xiàn),數(shù)據(jù)之間的關系則是通過箭頭的方式表示的。S102 根據(jù)所述基本設置信息,讀取預置的基礎框架所需的信息,并添加到所述預 置的基礎框架中相應的位置,為web應用中的各業(yè)務模塊生成業(yè)務代碼,所述業(yè)務代碼包 括展現(xiàn)層、邏輯層及持久層代碼。系統(tǒng)中預先設置了基礎框架,該基礎框架中包括了展現(xiàn)層、邏輯層及持久層代碼 的框架,當用戶輸入基本設置信息后,系統(tǒng)可以根據(jù)所述基本設置信息讀取預置的基礎框 架所需的信息,并添加到所述預置的基礎框架中相應的位置,添加完成之后,就為web應用 中的各業(yè)務模塊生成了業(yè)務代碼,因此,所述業(yè)務代碼包括展現(xiàn)層、邏輯層及持久層代碼。例如完整的人員工資管理業(yè)務作為web應用的一個業(yè)務模塊,包括視圖、控制器、 模型三部分視圖通過頁面顯示人員工資信息,同時用戶也通過頁面與應用系統(tǒng)進行交互, 控制器封裝頁面?zhèn)鬟f來的工資數(shù)據(jù)并調用后臺模型進行業(yè)務處理,計算工資數(shù)據(jù)或保存到 數(shù)據(jù)庫中等。通過本發(fā)明實施例提供的方法,就可以快速地生成該業(yè)務模塊的展現(xiàn)層、邏輯 層及持久層代碼,從而實現(xiàn)上述人員工資管理業(yè)務。當然,系統(tǒng)自動生成業(yè)務代碼之后,用戶還可以對生產(chǎn)的業(yè)務代碼進行修改。例 如,用戶發(fā)現(xiàn)還需要給當前業(yè)務模塊增加其他的功能,則可以通過手動的方式,增加該功能 相應的代碼,并以此來向系統(tǒng)發(fā)出對生成的業(yè)務代碼的修改指令。系統(tǒng)接收到用戶的修改 指令之后,就可以利用所述修改指令更新所述生成的業(yè)務代碼。
在實際應用中,由于web應用中經(jīng)常會出現(xiàn)權限控制的問題,因此,在本發(fā)明實施 例中,用戶還可以在系統(tǒng)初步搭建并啟動運行后,直接訪問系統(tǒng),并在系統(tǒng)中將業(yè)務訪問 url地址與用戶建立關聯(lián)關系,當用戶登錄系統(tǒng)時權限系統(tǒng)會判斷當前用戶與那些url地 址資源進行了管理,從而使得不同用戶登錄系統(tǒng)后能看到并訪問不同的業(yè)務模塊。另外,由于企業(yè)中的web應用所需的往往是全面解決方案,不僅需要實現(xiàn)各個業(yè) 務模塊的單項業(yè)務,還需要實現(xiàn)業(yè)務的流程化。例如,需要將人員工資管理模塊、員工培訓 模塊與新員工管理模塊進行組合,形成完整的從新員工報到、參加培訓到工資定級等多個 環(huán)節(jié)的一個完整業(yè)務流程。因此,在本發(fā)明實施例還提供了工作流完整解決方案所需的可 視化工作流定 義,用戶還可以在系統(tǒng)初步搭建并啟動運行后,使用系統(tǒng)中可視化的流程定 義工具,首先創(chuàng)建好各項工作流環(huán)節(jié),然后用連線的方式將各環(huán)節(jié)聯(lián)系起來設置業(yè)務環(huán)節(jié) 流轉方式,最后將某一具體業(yè)務訪問url與環(huán)節(jié)關聯(lián)從而實現(xiàn)完整的流程定義。可見,通過本發(fā)明實施例提供的方法,用戶使用同一工具就可以自動生成展現(xiàn)層、 邏輯層及持久層的業(yè)務代碼,而不用在多個不同的工具中進行切換,更不用手動將各個不 同工具生產(chǎn)的業(yè)務代碼組合起來,因此,從整體上提高了 web應用的開發(fā)效率。下面通過具體的應用對本發(fā)明實施例提供的方法進行更加詳細地介紹。本發(fā)明實施例是通過軟件開發(fā)平臺來提供不同粒度的服務,并利用開發(fā)工作臺來 整合各種開發(fā)工具,從而實現(xiàn)快速構建高質量企業(yè)級應用的目標。因此,在具體實現(xiàn)時,本 發(fā)明實施例提供的軟件開發(fā)平臺可以包括開發(fā)平臺和開發(fā)工作臺兩大部分。其中,開發(fā)平臺由基礎框架、權限平臺和工作流平臺組成。基礎框架用于搭建企業(yè) 應用的框架,可在此之上快速生成展現(xiàn)層、邏輯層和持久層代碼;權限平臺和工作流平臺都 是在基礎框架之上搭建的更高層次的業(yè)務服務套件,用于解決企業(yè)應用所需的通用業(yè)務服 務。其中,權限平臺用于定制企業(yè)組織機構和權限,工作流平臺用于定制企業(yè)業(yè)務流程。通過以上的組合方式,開發(fā)平臺既可以搭建企業(yè)應用開發(fā)的技術框架,以便于業(yè) 務開發(fā)和擴展,又能提供更高級的通用業(yè)務服務來進一步簡化開發(fā),從而實現(xiàn)了快速構建 高質量企業(yè)級應用的目的。開發(fā)工作臺是為使用開發(fā)平臺進行企業(yè)應用開發(fā)的相關人員提供的開發(fā)工具。其 功能除了一般開發(fā)工具具有的代碼編輯、調試等基礎功能外,還包括與開發(fā)平臺密切相關 的各種功能首先,可以直接生成包括基礎框架、權限平臺和工作流平臺的一體化運行環(huán) 境;然后,可以通過數(shù)據(jù)庫建模的方式自底向上生成包括持久、邏輯和展現(xiàn)各層的可運行代 碼;最后,還可以通過設計工具以可視化的方式分別設計持久、邏輯和展現(xiàn)各層。在實際應用中,如果開發(fā)人員首次使用本發(fā)明實施例提供的方法,則需要首先通 過開發(fā)工作臺新建開發(fā)平臺項目,在創(chuàng)建過程中設置好數(shù)據(jù)庫連接、系統(tǒng)參數(shù)等,創(chuàng)建好后 的項目可以直接在tomcat中運行。具體包括以下操作首先通過新建項目向導創(chuàng)建web應用,由基礎框架、權限平臺、工作流平臺三部分 組成;然后通過數(shù)據(jù)庫配置向導設置好數(shù)據(jù)庫連接信息并初始化生成web應用項目運 行所需的表和視圖;最后將創(chuàng)建好的項目通過部署向導發(fā)布到tomcat服務器上運行,啟動后開發(fā)人 員可以通過IE瀏覽器訪問應用并使用默認用戶名密碼登錄系統(tǒng)。
完成以上設置之后,就可以進行具體web應用的開發(fā)了。開發(fā)人員可以通過開發(fā) 工作臺設計數(shù)據(jù)庫表模型,由模型生成包括持久、邏輯和展現(xiàn)各層代碼,同時還可以生成具 有增加、刪除修改及查找功能的模塊,然后在其之上加入業(yè)務邏輯即可。也就是說,設計或 開發(fā)人員利用開發(fā)平臺中的基礎框架、權限平臺、工作流平臺三部分設計開發(fā)web應用業(yè) 務模塊,例如人力資源系統(tǒng)中的人員管理、組織機構管理、薪酬管理等。然后,開發(fā)人員利用權限平臺設置業(yè)務模塊的訪問權限,進一步完善業(yè)務模塊,例 如對于人員工資管理模塊設置只允許人力資源部門管理人員訪問。最后,開發(fā)人員利用工作流平臺可以將多個業(yè)務模塊中的業(yè)務組合起來實現(xiàn)業(yè)務 流程化,例如將人員工資管理模塊、員工培訓模塊與新員工管理模塊進行組合形成完整的 從新員工報到、參加培訓到工資定級等多個環(huán)節(jié)的一個完整業(yè)務流程。其中,具體在生成持久、邏輯和展現(xiàn)各層代碼時,可以采用如下方法接收用戶選 擇的業(yè)務場景、場景配置信息、為該業(yè)務場景選擇的持久模型及界面配置信息,把用戶選擇 的業(yè)務場景和場景配置信息保存在場景模型中,把界面配置信息保存在界面模型中;根據(jù) 所述持久模型,讀取持久層代碼所需的信息添加到預置的場景代碼模板中相應的位置,生 成持久層代碼;根據(jù)所述界面模型,讀取界面配置信息添加到所述場景代碼模板中相應的 位置,生成界面層代碼;結合所述場景模型、持久模型和界面模型,計算衍生出展現(xiàn)層及邏 輯層代碼所需的信息,保存在場景模型中;根據(jù)所述場景模型,讀取展現(xiàn)層及邏輯層代碼所 需的信息添加到所述場景代碼模板中相應的位置,生成展現(xiàn)層及邏輯層代碼。當然,也可以 采用其他方式實現(xiàn),本發(fā)明實施例對此不做限定。與本發(fā)明實施例提供的方法相對應,本發(fā)明實施例還提供了一種web應用開發(fā)系 統(tǒng),參見圖2,該系統(tǒng)包括以下單元第一接口單元U201,用于接收用戶在可視化界面上輸入的基本設置信息;代碼生成單元U202,用于根據(jù)所述基本設置信息,讀取預置的基礎框架所需的信 息,并添加到所述預置的基礎框架中相應的位置,為web應用中的各業(yè)務模塊生成業(yè)務代 碼,所述業(yè)務代碼包括展現(xiàn)層、邏輯層及持久層代碼。通過本發(fā)明實施例提供的裝置,用戶使用同一工具就可以自動生成展現(xiàn)層、邏輯 層及持久層的業(yè)務代碼,而不用在多個不同的工具中進行切換,更不用手動將各個不同工 具生產(chǎn)的業(yè)務代碼組合起來,因此,從整體上提高了 web應用的開發(fā)效率。本發(fā)明實施例在能夠搭建企業(yè)web應用開發(fā)的技術框架,以便于業(yè)務開發(fā)和擴展 的基礎上,還可以提供更高級的通用業(yè)務服務來進一步簡化開發(fā),從而實現(xiàn)了快速構建高 質量企業(yè)級應用的目的。其中,為了實現(xiàn)對業(yè)務模塊的權限控制,該系統(tǒng)還包括第二接口單元,用于接收用戶在可視化界面上輸入的權限設置信息;權限生成單元,用于建立所述權限設置信息與相應的業(yè)務模塊之間的關聯(lián)關系。為了實現(xiàn)業(yè)務流程化,該系統(tǒng)還包括第三接口單元,用于接收用戶在可視化界面上輸入的工作流設置信息;業(yè)務流程化單元,用于根據(jù)所述工作流設置信息,將各業(yè)務模塊中的業(yè)務代碼組 合起來實現(xiàn)業(yè)務流程化。本發(fā)明實施例除了可以自動生成展現(xiàn)層、邏輯層及持久層代碼之外,還可以包括其他代碼,例如,所述業(yè)務模塊還包括具有增力卩、刪除、修改及查找功能的模塊,同樣可以生成這些功能相應的代碼。本發(fā)明實施例中,web應用所需的代碼都是由系統(tǒng)自動生成的,但同時也允許用戶對自動生成的代碼進行手動地修改,此時,該系統(tǒng)還包括第四接口單元,用于接收用戶對生成的業(yè)務代碼的修改指令;代碼更新單元,用于利用所述修改指令更新所述生成的業(yè)務代碼。以上對本發(fā)明所提供的一種web應用開發(fā)方法及系統(tǒng),進行了詳細介紹,本文中 應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助 理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想, 在具體實施方式
及應用范圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本 發(fā)明的限制。
權利要求
一種web應用開發(fā)方法,其特征在于,包括接收用戶在可視化界面上輸入的基本設置信息;根據(jù)所述基本設置信息,讀取預置的基礎框架所需的信息,并添加到所述預置的基礎框架中相應的位置,為web應用中的各業(yè)務模塊生成業(yè)務代碼,所述業(yè)務代碼包括展現(xiàn)層、邏輯層及持久層代碼。
2.根據(jù)權利要求1所述的方法,其特征在于,還包括 接收用戶在可視化界面上輸入的權限設置信息;建立所述權限設置信息與相應的業(yè)務模塊之間的關聯(lián)關系。
3.根據(jù)權利要求1所述的方法,其特征在于,還包括 接收用戶在可視化界面上輸入的工作流設置信息;根據(jù)所述工作流設置信息,將各業(yè)務模塊中的業(yè)務代碼組合起來實現(xiàn)業(yè)務流程化。
4.根據(jù)權利要求1所述的方法,其特征在于,所述業(yè)務模塊還包括具有增加、刪除、修改及查找功能的模塊。
5.根據(jù)權利要求1至4任一項所述的方法,其特征在于,還包括 接收用戶對生成的業(yè)務代碼的修改指令;利用所述修改指令更新所述生成的業(yè)務代碼。
6.一種web應用開發(fā)系統(tǒng),其特征在于,包括第一接口單元,用于接收用戶在可視化界面上輸入的基本設置信息; 代碼生成單元,用于根據(jù)所述基本設置信息,讀取預置的基礎框架所需的信息,并添加 到所述預置的基礎框架中相應的位置,為web應用中的各業(yè)務模塊生成業(yè)務代碼,所述業(yè) 務代碼包括展現(xiàn)層、邏輯層及持久層代碼。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于,還包括第二接口單元,用于接收用戶在可視化界面上輸入的權限設置信息; 權限生成單元,用于建立所述權限設置信息與相應的業(yè)務模塊之間的關聯(lián)關系。
8.根據(jù)權利要求6所述的系統(tǒng),其特征在于,還包括第三接口單元,用于接收用戶在可視化界面上輸入的工作流設置信息; 業(yè)務流程化單元,用于根據(jù)所述工作流設置信息,將各業(yè)務模塊中的業(yè)務代碼組合起 來實現(xiàn)業(yè)務流程化。
9.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述業(yè)務模塊還包括具有增加、刪除、修改及查找功能的模塊。
10.根據(jù)權利要求6至9任一項所述的系統(tǒng),其特征在于,還包括 第四接口單元,用于接收用戶對生成的業(yè)務代碼的修改指令;代碼更新單元,用于利用所述修改指令更新所述生成的業(yè)務代碼。
全文摘要
本發(fā)明公開了一種web應用開發(fā)方法,該方法包括接收用戶在可視化界面上輸入的基本設置信息;根據(jù)所述基本設置信息,讀取預置的基礎框架所需的信息,并添加到所述預置的基礎框架中相應的位置,為web應用中的各業(yè)務模塊生成業(yè)務代碼,所述業(yè)務代碼包括展現(xiàn)層、邏輯層及持久層代碼。通過本發(fā)明,不用在多個不同的工具中進行切換,更不用手動將各個不同工具生產(chǎn)的業(yè)務代碼組合起來,從整體上提高了web應用的開發(fā)效率。
文檔編號G06F9/44GK101799754SQ20091024278
公開日2010年8月11日 申請日期2009年12月17日 優(yōu)先權日2009年12月17日
發(fā)明者方國, 楊寧, 王宇飛, 羅華永 申請人:中國電力科學研究院;國家電網(wǎng)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1