国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Ofbiz學(xué)習(xí)經(jīng)驗談

Ofbiz學(xué)習(xí)經(jīng)驗談- -

                                      

 

不可否認(rèn),OFBiz這個開源的系統(tǒng)功能是非常強大的,涉及到的東西太多了,其實對我們現(xiàn)在而言,最有用的只有這么幾個:實體引擎、服務(wù)引擎、WebTools、用戶權(quán)限管理。

最先要提醒各位的是,在配置一個OFBiz時,路徑中千萬不要包含空格,要不然老提示出錯,無外乎是scoket write error之類的信息,會讓你郁悶得不停^_^

用戶登錄鑒權(quán)這一塊我們完全可以照搬OFBiz現(xiàn)有的東西,其實也就是調(diào)用包org.ofbiz.securityext.login.LoginEvents里面的一些方法來進行處理。

Component定義:component-load.xml,可根據(jù)需要調(diào)整需在啟動時引入的Component,比如增加一個Study,定義:

<load-component component-location="${ofbiz.home}/components/study"/>



首先需要進行如下幾個項目的總體配置:

1、entityengine.xml:實體引擎配置,主要是配置該數(shù)據(jù)的方式,如通過oracle訪問,就配置一下localoracle,特別需要注意的是,在dataSource中配置中,一定要配置一個屬性 -schema-name="OFBIZ",這個主要是為了在OFBiz啟動時能夠正常同數(shù)據(jù)庫的對象進行匹配,如果沒有進行配置,每次都會試圖重新建立對象,會報對象名已經(jīng)被占用的情況。

2、 serviceengine.xml:服務(wù)引擎配置,這個基本上不用作太大的修改,如要必要,可在這里邊進行一些參數(shù)的調(diào)優(yōu),比如訪問線程數(shù)配置等。

之后需要在components目錄下新建一個目錄study,目錄里面的一些文件可直接從模板中拷貝,之后再進行必要的修改,涉及修改內(nèi)容:
1、entitygroup.xml & entitymodel實體定義(3.0版本開始,各實體定義可在各自的Component下定義,而不必統(tǒng)一集中在commonapp下);定義實體及實體的相關(guān)屬性(其實也就是相當(dāng)于數(shù)據(jù)庫的各種對象,需要注意的是,后續(xù)進行數(shù)據(jù)提取時,如果需要關(guān)聯(lián)到多張表,也需要在這里面定義一個view-entity);

2、 services.xml:如果必要的話,可以這里邊定義一些服務(wù);

3、 data:一些初始配置數(shù)據(jù),應(yīng)該是相對固定,不經(jīng)常變動的才放在這邊,可通過Webtool工具導(dǎo)入到數(shù)據(jù)庫中;

4、src:如改動了一些Java源文件內(nèi)容后,需要重新編譯該目錄的文件,可通過UltraEdit的工具配置來進行ant編譯,非常方便,推薦使用,編譯后的文件將生成到build目錄下,生成的文件有各個class文件,也有一些.jar包(放在lib目錄下),這些jar包是我們在Web應(yīng)用中需要引用到的,當(dāng)然,引用哪些包也是可配置的,下面會講到;

5、 ofbiz-component.xml:主要的配置文件,需要注意的一些東西:

(1)<classpath type="jar" location="build/lib/*"/> 這是jar引用路徑,我在考慮是否可改成直接引用class文件,也就是直接設(shè)置class文件所在的目錄;

(2)title="Study" 這個就是我們通過appbar.ftl文件在主界面顯示的那一排按鈕上顯示的內(nèi)容,可根據(jù)需要調(diào)整,調(diào)整完要重啟OFBiz,麻煩,可以考慮通過hot-deploy目錄進行發(fā)布。

至于其他一些配置,很簡單,看看就曉得。

下面講一下Web應(yīng)用配置,Web應(yīng)用配置中涉及到的最重要的兩個文件是:controller.xml和regions.xml,controller.xml文件主要是配置request-map,也就是請求映射關(guān)系,所有的請求映射都需要在這里邊進行配置,也就是我們在Web頁面上??吹降?login等,如果涉及到view-map類型是region,就需要從region.xml文件中去讀取配置,其實也就是配置各個region引用的處理頁面(可以是各種開發(fā)語言,比如Jsp、ftl等等)。另外,在region.xml配置文件中最重要的一部分就是MAIN_REGION的配置,就是整個網(wǎng)頁布局的配置,包括header、appbar、error、content、footer等等,其中appbar就是我們在前面剛剛提到的主界面上那一排按鈕的配置了,header、footer和error太簡單,不說了,我們主要要修改的東西都是在content這一塊上進行展現(xiàn)。
網(wǎng)頁中用到的一些樣式、公用的定義都是在main_template.jsp中寫入的,也需要在MAIN_REGION的屬性中配置引用的文件。樣式定義文件是引用images這個component,所以這個也是關(guān)鍵,不能缺的。

最后,講一講我對數(shù)據(jù)庫訪問的一些簡單的了解:對數(shù)據(jù)庫的訪問主要是通過GenericDelegator進行控制,包括一些常用的方法,如findAll、remove、store、create等等,具體的用法要去研究一下,其實也不算復(fù)雜,先建立一個GenericDelegator,如果是create、store就可以通過makeValue方法將一些字段的值設(shè)置到GenericValue,之后再進行store或是create,具體語法要去參考一些文檔,還沒去看這一塊的東西。

最最需要訪問的一些文檔:OFBizChina實體引擎配置指南、OFBizChina 區(qū)塊(Region)指南、OFBizChina 服務(wù)引擎配置指南、OFBizChinaJSP標(biāo)簽庫指南,當(dāng)然,研究OFBiz的前提是要首先要理解MVC模式的概念,也就是View-Model-Control,否則一切都是空談。

補充幾點:
1、 對于Ofbiz構(gòu)造動態(tài)查詢語句
(1) 構(gòu)造查詢條件
(2) 給每個條件之間加上邏輯關(guān)系,用mainCond = new EntityConditionList(andExprs, EntityOperator.AND);
(3) 設(shè)置要顯示的字段列表
(4) 設(shè)置排序字段列表
(5) 設(shè)置Distinct列表
EntityFindOptionsfindOpts = new EntityFindOptions(true,EntityFindOptions.TYPE_SCROLL_INSENSITIVE,EntityFindOptions.CONCUR_READ_ONLY, true);
(6) 獲取實體列表
EntityListIterator pli = delegator.findListIteratorByCondition(entityName, mainCond, null, fieldsToSelect, orderBy, findOpts);
(7) 一個動態(tài)查詢語句的具體實例
<%
String entityName="study";
List andExprs = new ArrayList();
String number="";
String name="";
String sex="";
String tel="";
//GenericDelegator delegator = GenericDelegator.getGenericDelegator("default");
EntityConditionList mainCond=null;
if (request.getParameter("number")!=null)
number=request.getParameter("number").toString();
if (request.getParameter("name")!=null)
name=request.getParameter("name").toString();
if (request.getParameter("sex")!=null)
sex=request.getParameter("sex").toString();
if (request.getParameter("tel")!=null)
tel=request.getParameter("tel").toString();
//構(gòu)造查詢條件
if (number.compareTo("")!=0)
andExprs.add(new EntityExpr("number",EntityOperator.EQUALS,number));
if (name.compareTo("")!=0)
andExprs.add(new EntityExpr("name1",true,EntityOperator.LIKE,"%"+name+"%",true));
if (sex.compareTo("")!=0)
andExprs.add(new EntityExpr("sex1",true,EntityOperator.LIKE,"%"+sex+"%",true));
if (tel.compareTo("")!=0)
andExprs.add(new EntityExpr("tel",true,EntityOperator.LIKE,"%"+tel+"%",true));
//每個條件間的邏輯關(guān)系
if (andExprs.size() > 0)
mainCond = new EntityConditionList(andExprs, EntityOperator.AND);
//要顯示的字段列表
List fieldsToSelect = new ArrayList();
fieldsToSelect.add("number");
fieldsToSelect.add("name1");
fieldsToSelect.add("sex1");
fieldsToSelect.add("tel");
//排序字段列表
List orderBy = UtilMisc.toList("number", "name1");
//Distinct列表
EntityFindOptionsfindOpts = new EntityFindOptions(true,EntityFindOptions.TYPE_SCROLL_INSENSITIVE,EntityFindOptions.CONCUR_READ_ONLY, true);
//獲取實體列表
EntityListIterator pli = delegator.findListIteratorByCondition(entityName, mainCond, null, fieldsToSelect, orderBy, findOpts);
while(pli.hasNext())
{
GenericValue cust = (GenericValue)pli.next();%>
<tr>
<td><%=cust.getString("number")%></td>
<td><%=cust.getString("name1")%></td>
<td><%=cust.getString("sex1")%></td>
<td><%=cust.getString("tel")%></td>
</tr>
<%}%>

</table>

2、 對于所有的圖片文件,都放在images目錄下
3、 設(shè)置圖片的標(biāo)簽<ofbiz:contenturl>圖片路徑</ofbiz:contenturl>
4、 鏈接Tag <ofbiz:url>control.xml里面設(shè)置的請求</ofbiz.url>
5、 <region:render section=‘header‘/>引入header定義的文件
header這個標(biāo)識在regions.xml里面定義
<define id=‘MAIN_REG‘ template=‘/templates/main_template1.jsp‘>
<put section=‘title‘>Application Page</put> <!-- this is a default and is meant to overridden -->
<put section=‘header‘ content=‘/includes/bottom.jsp‘/>
<put section=‘leftbar‘ content=‘/includes/left.jsp‘/>
<put section=‘middle‘ content=‘/includes/middle.jsp‘/>
<put section=‘content‘ content=‘/includes/middle.jsp‘/> <!-- this is a default and is meant to overridden -->
<put section=‘top‘ content=‘/includes/top.jsp‘/>
<put section=‘error‘ type="jpublish" content=‘/includes/errormsg.ftl‘/>
<!--<put section=‘footer‘ type="jpublish" content=‘/includes/footer.ftl‘/>-->
</define>
然后其它頁面只要如下定義即可
<define id=‘BasePubEmp‘ region=‘MAIN_REG‘>
<put section=‘title‘>View BasePubEmp</put>
<put section=‘content‘ content=‘/BasePubEmp.jsp‘/>
</define>
注意,這邊的content所指定的區(qū)塊就是我們上面定義的content
6、 這些標(biāo)簽都挺簡單的,Ofbiz里面都有例子,參照一下就可以了

后續(xù)將對Ofbiz中的shark工作流進行描述。
http://www.cnpoint.com/mvnforum/mvnforum/viewthread?thread=67

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
OFBiz使用心得
Apache OFBIZ快速上手(二)
tomcat5中文問題解決之道
jsp頁面間傳值亂碼問題
國外jsp cmd小馬能繞過攔截等內(nèi)容檢測
SSM項目整合基本步驟
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服