??xml version="1.0" encoding="utf-8" standalone="yes"?>mm1313亚洲国产精品美女,亚洲第一页日韩专区,亚洲2022国产成人精品无码区http://www.tkk7.com/dorado/archive/2005/07/25/8369.htmldorado技术园?/dc:creator>dorado技术园?/author>Sun, 24 Jul 2005 16:46:00 GMThttp://www.tkk7.com/dorado/archive/2005/07/25/8369.htmlhttp://www.tkk7.com/dorado/comments/8369.htmlhttp://www.tkk7.com/dorado/archive/2005/07/25/8369.html#Feedback0http://www.tkk7.com/dorado/comments/commentRss/8369.htmlhttp://www.tkk7.com/dorado/services/trackbacks/8369.html?/SPAN>Dorado提供默认的提交操作中Q用户可能会(x)有其他自定义的数据更新操作,如何使他们都处于一个事务中呢?

Ҏ(gu)一: 使用标准?/SPAN>JDBC对象完成数据操作.

Dorado提供了一个工L(fng)Q?/SPAN>com.bstek.dorado.common.TransactionManagerQ该cL供一个静态方法:(x)

Transaction getTransaction(DoradoContext context) throws java.lang.Exception

获取与指定的上下?/SPAN>(DoradoContext)相关的事务对?/SPAN>.

q样我们得到一个默认的处理事务对象Q通过该事务对象提供的Ҏ(gu)Q?/SPAN>

Connection getConnection(java.lang.String dataSource) throws java.lang.Exception

获取一个与本事务相关的ConnectionQ自定义的更新就通过q个Connection对象处理Q最后系l会(x)自动理整个事务?/SPAN>

代码CZ: 

Transaction transaction = TransactionManager.getTransaction(context);
Connection connection 
= transaction.getConnection(null);
try {
    
// 利用connection对象q行数据操作.
}

finally {
    connection.close();
}

注意

?/SPAN>Connection 对象Q你可以执行close操作Q但是不允许执行commit?/SPAN>rollback操作。因?/SPAN>commit?/SPAN>rollback操作在pȝ所有更新完成之后才允许q行, commit?/SPAN>rollback操作是由Transaction对象理的?/SPAN>

即(zhn)在Transaction执行commit之前?/SPAN>Connection执行?/SPAN>close操作也不?x)媄响到你在?/SPAN>Connection上所作得数据修改. (zhn)不必担心由于提前关闭了Connection而导致所作的数据修改q了事?/SPAN>.

Ҏ(gu)?/SPAN>: 使用标准?/SPAN>dorado?/SPAN>Dataset?/SPAN>DBStatement对象完成数据操作.

除了使用上面的方法之?/SPAN>, 我们q可以?/SPAN>dorado中提供的Dataset?/SPAN>DBStatement对象完成数据操作. q种做法优点在于:

1.       可直接集?/SPAN>Context中的当前事务, 代码量小.

2.       支持命名参数, 使用方便.

使用SqlDatasetd记录的代码示?/SPAN>:

AutoSqlDataset dataset = new AutoSqlDataset();
dataset.setOriginTable(
"employee"); //讄要操作的数据库表?/SPAN>
dataset.setKeyFields("employee_id"); //讄该表的主?在更新或删除记录时必设|?    

dataset.insertRecord(); 
//插入一条空记录
// 以下代码讄新记录的?/SPAN>
dataset.setString("employee_id""GUOLIWEI");
dataset.setString(
"employee_name""国莅?/SPAN>");
dataset.setBoolean(
"sex"false);    

dataset.insertRecord(); 
//插入另一条空记录
// 以下代码讄新记录的?/SPAN>
dataset.setString("employee_id""PANLONG");
dataset.setString(
"employee_name""盘龙");
dataset.setBoolean(
"sex"true);

dataset.update(context); 
//所做的修改更新到数据库?BR>


使用DBStatement对象的代码示?/SPAN>:

DBStatement statement = new DBStatement(
    
null"INSERT INTO LOG (MSG_TIME, MSG) VALUES (:timestamp, :message)");
ParameterSet parameters 
= statement.parameters();    

//d一条记?/SPAN>
parameters.setDate("timestamp"new Date());
parameters.setString(
"message""XXX XXX XXX");
statement.execute(context);

//d另一条记?/SPAN>
parameters.setDate("timestamp"new Date());
parameters.setString(
"message""YYY YYY YYY");
statement.execute(context);


]]>
dorado的M技术架?/title><link>http://www.tkk7.com/dorado/archive/2005/07/25/8367.html</link><dc:creator>dorado技术园?/dc:creator><author>dorado技术园?/author><pubDate>Sun, 24 Jul 2005 16:36:00 GMT</pubDate><guid>http://www.tkk7.com/dorado/archive/2005/07/25/8367.html</guid><wfw:comment>http://www.tkk7.com/dorado/comments/8367.html</wfw:comment><comments>http://www.tkk7.com/dorado/archive/2005/07/25/8367.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/dorado/comments/commentRss/8367.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/dorado/services/trackbacks/8367.html</trackback:ping><description><![CDATA[<P align=center><FONT size=2><IMG height=741 alt=architecture.jpg src="http://www.tkk7.com/images/blogjava_net/dorado/architecture.jpg" width=607 border=0></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><BR><BR><FONT size=2>以下的说明基于利?/FONT></SPAN><FONT size=2><SPAN lang=EN-US><FONT face=Verdana>Dorado</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US><FONT face=Verdana>MVC</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">框架的基本开发方?/SPAN><SPAN lang=EN-US><FONT face=Verdana>:</FONT></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore"><FONT face=Verdana>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US><FONT face=Verdana>Request(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">h</SPAN><SPAN lang=EN-US><FONT face=Verdana>)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">Q?/SPAN><FONT face=Verdana> </FONT><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Client</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US><FONT face=Verdana>(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">览?/SPAN><SPAN lang=EN-US><FONT face=Verdana>)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">发vh?/SPAN><SPAN lang=EN-US><FONT face=Verdana>, </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">改请求将首先?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Dorado</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的控制层</SPAN><SPAN lang=EN-US><FONT face=Verdana>(Mapping)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">接受</SPAN><SPAN lang=EN-US><FONT face=Verdana>.</FONT></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore"><FONT face=Verdana>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US><FONT face=Verdana>Dispatch(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">分发</SPAN><SPAN lang=EN-US><FONT face=Verdana>): </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">控制层会(x)跟据用户的配|决定激zd一?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Action. </FONT></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore"><FONT face=Verdana>3.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US><FONT face=Verdana>Forward(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">转向</SPAN><SPAN lang=EN-US><FONT face=Verdana>): </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">商业逻辑执行完成?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Action</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">根据商业逻辑的执行结果将</SPAN><SPAN lang=EN-US><FONT face=Verdana>Request</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">转向l具体的视图</SPAN><SPAN lang=EN-US><FONT face=Verdana>(ViewModel). </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">具体的{向方式由</SPAN><SPAN lang=EN-US><FONT face=Verdana>Action</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的用户配|信息决?/SPAN><SPAN lang=EN-US><FONT face=Verdana>.</FONT></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore"><FONT face=Verdana>4.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US><FONT face=Verdana>Extract(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">提取</SPAN><SPAN lang=EN-US><FONT face=Verdana>): </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">视图</SPAN><SPAN lang=EN-US><FONT face=Verdana>(ViewModel)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">被激zd?x)通过其中?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Dataset</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">对象?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Module</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中提取业务数?/SPAN><SPAN lang=EN-US><FONT face=Verdana>. </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">同时视图也会(x)Ҏ(gu)配置信息自动创徏各种可视化的控g用于展现提取到的业务数据</SPAN><SPAN lang=EN-US><FONT face=Verdana>.</FONT></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore"><FONT face=Verdana>5.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US><FONT face=Verdana>Response(</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">反馈</SPAN><SPAN lang=EN-US><FONT face=Verdana>): </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">视图?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Server</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">端准备工作完成后?x)自动将各种信息输出?/SPAN><SPAN lang=EN-US><FONT face=Verdana>Response</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">对象中反馈给</SPAN><SPAN lang=EN-US><FONT face=Verdana>Client</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US><FONT face=Verdana>.</FONT></SPAN></FONT></P> <P align=center> <TABLE class=dorado style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid silver .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid silver; mso-border-insidev: .5pt solid silver" cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR style="HEIGHT: 34.05pt; mso-yfti-irow: 0; mso-yfti-lastrow: yes"> <TD style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 0cm; BORDER-LEFT: silver 1pt solid; WIDTH: 59.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 34.05pt; mso-border-alt: solid silver .5pt" vAlign=top width=79> <P class=a style="MARGIN: 12pt 0cm; TEXT-ALIGN: center; mso-yfti-cnfc: 4" align=center><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><STRONG><FONT size=2>注意</FONT></STRONG></SPAN></P></TD> <TD style="BORDER-RIGHT: silver 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: silver 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: white; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 366.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 34.05pt; mso-border-alt: solid silver .5pt; mso-border-left-alt: solid silver .5pt" vAlign=top width=489> <P class=a style="MARGIN: 12pt 0cm"><FONT size=2><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">上图中以虚线标出?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>dorado</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>MVC</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">架构与传l?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>MVC</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的不同点</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>. </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">q种不同主要是由</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>dorado</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">强大?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>Client</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">带来?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></FONT></P> <P class=a style="MARGIN: 12pt 0cm 12pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><FONT size=2><SPAN lang=EN-US style="FONT-WEIGHT: normal; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore"><FONT face=Verdana>1.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">     </SPAN></SPAN></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">׃</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>dorado</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>Client</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">不再以传l的</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>HTML FORM</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">作ؓ(f)?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>Server</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">交互的途径</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>, </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">而是?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>XML</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">替代</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>. XML</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">所能构承蝲的信息量和复杂度q远高于</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>HTML FORM. </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">所以在</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>dorado</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的开发模式中往往不在</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>Action</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中直接调用业务逻辑</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>, </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">而是{到</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>ViewModel</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>Module</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">这?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>XML</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">解析成对象后再调用业务逻辑</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>.<o:p></o:p></FONT></SPAN></FONT></P> <P class=a style="MARGIN: 12pt 0cm 12pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><FONT size=2><SPAN lang=EN-US style="FONT-WEIGHT: normal; mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore"><FONT face=Verdana>2.</FONT><SPAN style="FONT: 7pt 'Times New Roman'">     </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>dorado</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>Client</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中除了有普通的cM</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>FORM</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">提交的操作之?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>, </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">q存在着一U数据请求操?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>. </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">例如在不h面的情况下下蝲数据集的分页信息、远E方法调用等</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>. </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">q种h与普通的提交的操作的处理方式有着很大的不?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>, </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">也同样难以通过</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>Action</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">q行l一的处?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>. </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">而且利用</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>dorado</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>MVC</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">开发方式却可以很好解决q一问题</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>.<o:p></o:p></FONT></SPAN></FONT></P> <P class=a style="MARGIN: 12pt 0cm"><FONT size=2><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">以上变化</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>, </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">l过锐道公司</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>extra</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>dorado</FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">两代产品的数十家不同cd、层ơ的开发的实践证明是完全可?/SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>, </FONT></SPAN><SPAN style="FONT-WEIGHT: normal; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">且对pȝ的扩展性、复用性、安全性完全无害的</SPAN><SPAN lang=EN-US style="FONT-WEIGHT: normal"><FONT face=Verdana>.<o:p></o:p></FONT></SPAN></FONT></P></TD></TR></TBODY></TABLE></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 21pt" align=center><SPAN lang=EN-US><o:p><FONT face=Verdana><FONT size=2> <HR>  <BR> <P align=center><IMG height=834 alt=model.jpg src="http://www.tkk7.com/images/blogjava_net/dorado/model.jpg" width=532 border=0></P><BR><BR></FONT> <P></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 21pt"><FONT size=2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">上图解释了数据如何通过各个功能层从数据库中转换到可是化控g中的q程</SPAN><SPAN lang=EN-US>.<o:p></o:p></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore">1.<SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US>ViewMode</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">用于定义一个视囄模型Q包括数据模型(</SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">Q和可视化组Ӟ</SPAN><SPAN lang=EN-US>Control</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">Q的模型?/SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">是一U用于ؓ(f)</SPAN><SPAN lang=EN-US>Client</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">服务的二l数据表?/SPAN><SPAN lang=EN-US>Control</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">可以l定?/SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">Q用于展C和操作</SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中管理的数据?/SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore">2.<SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US>DatasetRefrence</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">是一U对</SPAN><SPAN lang=EN-US>Module</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的引用,用于使用</SPAN><SPAN lang=EN-US>ViewModel</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">之外的其它的</SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的数据?/SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore">3.<SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN lang=EN-US>Module</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">一般用于描qCl相关的商业逻辑或作为后台的商业逻辑的前端(商业逻辑前端也称为:(x)</SPAN><SPAN lang=EN-US>BusinessDelegate</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">Q?/SPAN><SPAN lang=EN-US>Module</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">可通过</SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">的事件来?/SPAN><SPAN lang=EN-US>Client</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">?/SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中数据的操作译成真正的业务逻辑操作?/SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 42.0pt"><FONT size=2><SPAN lang=EN-US style="mso-fareast-font-family: Verdana; mso-bidi-font-family: Verdana"><SPAN style="mso-list: Ignore">4.<SPAN style="FONT: 7pt 'Times New Roman'">       </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">在默认模式下Q用户可通过</SPAN><SPAN lang=EN-US>SQL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">q行数据库操作,此时用户可利?/SPAN><SPAN lang=EN-US>Module</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">中的</SPAN><SPAN lang=EN-US>Dataset</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">对象直接Ҏ(gu)据库q行操作?/SPAN><SPAN lang=EN-US><o:p></o:p></SPAN></FONT></P> <P class=2 style="MARGIN: 15.6pt 0cm 15.6pt 21pt" align=center><FONT size=2></FONT></P></FONT></o:p></SPAN><img src ="http://www.tkk7.com/dorado/aggbug/8367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/dorado/" target="_blank">dorado技术园?/a> 2005-07-25 00:36 <a href="http://www.tkk7.com/dorado/archive/2005/07/25/8367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dorado是什?http://www.tkk7.com/dorado/archive/2005/07/25/8366.htmldorado技术园?/dc:creator>dorado技术园?/author>Sun, 24 Jul 2005 16:36:00 GMThttp://www.tkk7.com/dorado/archive/2005/07/25/8366.htmlhttp://www.tkk7.com/dorado/comments/8366.htmlhttp://www.tkk7.com/dorado/archive/2005/07/25/8366.html#Feedback20http://www.tkk7.com/dorado/comments/commentRss/8366.htmlhttp://www.tkk7.com/dorado/services/trackbacks/8366.html首先介绍一下什么是dorado? 详细情况也可以到

product.jpg



l         Dorado Web UI控g集及UI引擎Q?/SPAN>Dorado Web UI Components and UI EngineQ?/FONT>

n         包含各种常用的界面控Ӟ?/FONT>:可编辑的表格、树(wi)、下拉框{?/SPAN>, 可轻松构造出令h耳目一新的Q具?/SPAN>RIA(Rich Internet Application) 特征?/SPAN>Web应用界面?/FONT>

n         无需下蝲安装M览器插?/FONT>, 卌实现cMC/S应用的界面风格和操作?fn)惯Q根?/SPAN>B/S应用难以满用户体验的顽症?/FONT>

n         可扩展的UI数据?/SPAN>, 可快速地与各U第三方的开发框架或应用整合.

n         独树(wi)一帜的Client?/SPAN> / Server端事件编E机?/SPAN>, 充分保证Web界面的扩展性和灉|性?/FONT>

n         利用XMLHttp技术实现数据交?/SPAN>, 可大大降?/SPAN>Web面的刷新频率?/FONT>

n         支持皮肤切换?/FONT>

l         Dorado可视化集成开发工?/SPAN> Q?/SPAN>Dorado StudioQ?/FONT>

n         全面支持ZDorado套g开发的各个环节的可视化配置、管?/SPAN>. 如界面设计、可视化数据q接配置、可视化数据层定义、可视化控制层配|、国际化资源配置{?/FONT>

n         ?/FONT>Web应用以项目方式管理,同时可以完成寚w目的~译、部|Ӏ测试的全过E?/FONT>

n         提供多种向导帮助用户快速上手?/FONT>

n         支持Java?/SPAN>JavaScript?/SPAN>XML?/SPAN>HTML?/SPAN>SQL的高亮编辑?/FONT>

n         支持Ҏ(gu)据视图进行预览同时提供可视化?/FONT>SQL的查询向对{?/FONT>

l         Dorado MVC开发框?/SPAN> Q?/SPAN>Dorado MVC FrameworkQ?/FONT>

n         提供cMStruts?/SPAN>MVC开发框?/SPAN>, 以便于更加方便地利用Dorado套gq行ZMVC架构的开发?/FONT>

n         提供性能监控控制?/FONT>, 可方便的对系l运行过E中各功能点的运行效率进行统计和分析?/FONT>

n         支持国际化资源配|?/FONT>

n         支持模块化配|?/FONT>

n          (?/SPAN>: Dorado MVC开发框架是一个可选g?/SPAN>Dorado套g完全支持其它的各U第三方开发框?/SPAN>, ?/SPAN>Struts?/SPAN>WebWork{?/SPAN>)

l         Dorado Web应用框架 Q?/SPAN>Dorado Web Application FrameworkQ?/FONT>

n         可方便对Web应用的登录状态进行管?/SPAN>. 快速实现整个应用的d状态校验功能?/FONT>

n         Z角色?/FONT>Web界面配置, 可方便的支持Z同角色的用户提供有区别的Web界面?/FONT>

n         提供一套完整的支持角色、权限组的权限的实现. 包括默认数据库结构、相应的实现代码、维护界面。同时也可以通过扩展支持用户数据库结?/SPAN>(暂未提供)?/FONT>

n         提供一套登录画面、主面{的模版和相应后台管理界?/FONT>. (暂未提供)?/FONT>



]]>
使用传统MVC的企业应当如何导入dorado? http://www.tkk7.com/dorado/archive/2005/07/19/8005.htmldorado技术园?/dc:creator>dorado技术园?/author>Tue, 19 Jul 2005 09:13:00 GMThttp://www.tkk7.com/dorado/archive/2005/07/19/8005.htmlhttp://www.tkk7.com/dorado/comments/8005.htmlhttp://www.tkk7.com/dorado/archive/2005/07/19/8005.html#Feedback0http://www.tkk7.com/dorado/comments/commentRss/8005.htmlhttp://www.tkk7.com/dorado/services/trackbacks/8005.html要了解dorado的详情请览http://www.bstek.com

?A href="http://www.tkk7.com/dorado/archive/2005/07/25/8367.html">http://www.tkk7.com/dorado/archive/2005/07/25/8367.html
中我们已l了解到
dorado的开发模式与传统的基?/SPAN>MVC的企业应用开发模式之间存在着一些差?/SPAN>. 可能看到q里(zhn)已l生了一大堆的问?/SPAN>:

l         Z么一定要有这L(fng)差异存在?

l         q种差异在多大的程度上影响我们企业原有的系l或开发框?/SPAN>(开发规?/SPAN>)?

l         q种差异在多大的程度上影响E序员原有的~程?fn)?/SPAN>?

l         Dorado的开发方式是否拥有够的健壮性、够的扩展?/SPAN>?

Z深入的解{上q这些问?/SPAN>, 我们首先来了解一下传l的MVC开发模?/SPAN>. 如下?/SPAN>(此处?/SPAN>Control以目前最为流行的StrutsZ):

mvc.gif
图表
传统的基?/SPAN>MVC架构开发模?/SPAN>

1.       Request(h)Q?/SPAN> ?/SPAN>Client?/SPAN>(览?/SPAN>)发vh?/SPAN>, 改请求将首先被控制层(Struts?/SPAN>Action)接受.

2.       Dispatch(分发): Action调用具体的Model中的BO对象来完成实际的业务逻辑操作, 然后执行结果存贮于Request?/SPAN>Attributies?/SPAN>. (一般惯例是q样?/SPAN>)

3.       Forward(转向): 商业逻辑执行完成?/SPAN>Action根据商业逻辑的执行结果将Request转向l具体的视图(JSP).

4.       Extract(提取): 一般而言JSP不会(x)ȝ接访?/SPAN>Model?/SPAN>, 而是直接?/SPAN>Request?/SPAN>Attributies中提取已l在W?/SPAN>2歩存攑֥的业务数?/SPAN>.

5.       Response(反馈): 视图?/SPAN>Server端准备工作完成后?x)自动将各种信息输出?/SPAN>Response对象中反馈给Client?/SPAN>.

从上面的分析我们不难看到在这U开发模式中, 业务逻辑主要都是?/SPAN>Action中完成调用的, 然后通过Request?/SPAN>Attributies作ؓ(f)上下文对象在Action?/SPAN>JSP之间传递信?/SPAN>.

那么Zdorado的开发是否也可以按照q种方式来操作呢? {案是可?/SPAN>, 但是dorado中某些高U功能会(x)受到一些媄?/SPAN>.

因ؓ(f)在传l的B/S应用?/SPAN>, Client?/SPAN>Server端的交互完全是通过HTML FORM来完?/SPAN>. 而且每次执行完一个业务逻辑操作之后往往?x)刷新整?/SPAN>Client, 卌同操作结果和HTML一起下载ƈ重新装蝲整个Client. 可是?/SPAN>dorado?/SPAN>Client中我们可以实现很多类似页面局部刷新、数据分批下载、远E方法调用、复杂数据对象的整体提交q样的功?/SPAN>. q些功能的实C能完全依赖于传统?/SPAN>HTML FORM的提交来完成, 而是需要依靠浏览器?/SPAN>XMLHTTP技?/SPAN>.

提示

上面提到的dorado中的面局部刷新、数据分批下载、远E方法调用、复杂数据对象的整体提交{功能?zhn)可以通过dorado的SampleCenter中的下面一个例子来体验.



lg
, 对于Server端的E序而言传统?/SPAN>B/S应用?/SPAN>dorado应用最大的差别在于此.

l         在传l的B/S应用?/SPAN>Server端的E序只需要处理一U?/SPAN>Clienth, x行逻辑然后q回视图, 且要处理?/SPAN>Clienth的参数类型都是类同的.

l         ?/SPAN>dorado应用?/SPAN>Server端的E序需要处理至两U?/SPAN>Clienth. 其中一U是单的cM传统B/S应用的请?/SPAN>, 另一U是dorado独具的用于处理类似数据分批下载和复杂数据提交的请?/SPAN>, q一c请求都是通过XMLHTTP技术提交的, 其参C息都包含在一D?/SPAN>XML?/SPAN>. 且这一c请求的反馈l果必须同样?/SPAN>XML格式?/SPAN>, 其中只包含数据和执行l果, 不能包含HTML信息.

q样一来我们便很难所有的h的处理代码一概放?/SPAN>Action中完?/SPAN>. 因ؓ(f)对于dorado应用, 其中的部分请求的参数是相Ҏ(gu)较复杂的XML. 所以ؓ(f)了避免自己手工的去解析和l装XML, 我们应当把这U请求的业务逻辑调用攑ֈdorado?/SPAN>Module或着ViewModel?/SPAN>, ?/SPAN>dorado来帮我们完成J琐?/SPAN>XML信息处理, 我们只要直接使用通过解析获得?/SPAN>Java对象型的数据可以了.

那么q种方式是否意味着原本集中在Action中的业务逻辑调用被分散到了几个不同的环节, 造成pȝ中业务逻辑的分散而不易管理呢? 应该说只要我们对pȝE作调整可以避免这个问题的出现??我们需要引入业务代表层(BO Delegate).

struts-action.gif
图表
原有的系l调?/SPAN>BO的模?/SPAN>

如上图所C?/SPAN>, 在原有的pȝ中我们一般首先会(x)?/SPAN>Action中将Request中附带的Parameter{信息提供给BO Delegate, ?/SPAN>BO Delegate其l装成一个或几个VO(Value Object)对象, 或者直接?/SPAN>Struts提供?/SPAN>FormBean对象作ؓ(f)VO对象. 然后再利用这?/SPAN>VO对象去调用自q业务逻辑对象. 对于BO而言, 他的前端介面是VO.

注意

在?zhn)的系l有可能q没有明的定义BO Delegateq种对象, 可它事实上往往是存在的. 除非(zhn)的pȝ中直接将Request对象传进?/SPAN>BO?/SPAN>. 如果是这L(fng)?/SPAN>, 我们认ؓ(f)你的pȝ原本也属于应q行重构的范?/SPAN>. 因ؓ(f)q样?/SPAN>BO层与Requestq行了不必要的耦合, 大大降低了系l的可扩展?/SPAN>. 且这L(fng)BO是无法支持单元测?/SPAN>(试驱动开发的)?/SPAN>.


对于dorado应用而言BO仍可以以完全相同的VO作ؓ(f)其前端介? 只是我们需要另外一U或几种BO Delegate负责不同的外部数据构造成l一的VO对象. 

dorado-action.gif
图表
攚w后pȝ调用BO的模?/SPAN>

如上图所C?/SPAN>, ?/SPAN>Action接到XMLHTTP发送的h时会(x)处理{交给dorado中的Module?/SPAN>ViewModel对象来处?/SPAN>, ׃们首先来完成?/SPAN>XML提交信息的解?/SPAN>. 而后再利?/SPAN>BO Delegate这些信息组装成BO所需要的VO对象. q样, 我们事实上几乎不需要对BO层做什么改动就可以?/SPAN>dorado导入到系l中?/SPAN>. 而且很明显这L(fng)调整是不?x)媄响到整个pȝ的扩展性的.

从另外一个简单的角度来看q个问题, 事实上就是在新的pȝ架构中我们保留整?/SPAN>Model层的设计, ?/SPAN>dorado来替换原先的View?/SPAN>. 然后?/SPAN>Model层和dorado?/SPAN>View层直接通过一l特别定义的交互接口来实现对?/SPAN>. Ҏ(gu)时?/SPAN>VO作ؓ(f)数据交换对象. 同时dorado又特别提供了DODataset?/SPAN>DOUtils{对象和工具cd以辅助我们更加方便的构造和溶解各种cd?/SPAN>VO对象. 因此你大可不必ؓ(f)整合dorado而大伤脑{?/SPAN>, 管他需要我们适当的调整原有的开发习(fn)?/SPAN>, 但是dorado带给我们的其它好处是显而易见的.

 



]]>
利用dorado mapping快速开发文件的上传和下?/title><link>http://www.tkk7.com/dorado/archive/2005/07/14/7735.html</link><dc:creator>dorado技术园?/dc:creator><author>dorado技术园?/author><pubDate>Thu, 14 Jul 2005 15:27:00 GMT</pubDate><guid>http://www.tkk7.com/dorado/archive/2005/07/14/7735.html</guid><wfw:comment>http://www.tkk7.com/dorado/comments/7735.html</wfw:comment><comments>http://www.tkk7.com/dorado/archive/2005/07/14/7735.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/dorado/comments/commentRss/7735.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/dorado/services/trackbacks/7735.html</trackback:ping><description><![CDATA[     摘要: 本文介绍了如何利用dorado提供的FileController实现文g的上传及下蝲. FileController是dorado mapping中的一个抽象类. 通过对FileController的? 我们可以很容易的实现一l文件的上传及下载的功能.1. 在dorado studio的Mapping中新Z个Controller. 例如: <controller nam...  <a href='http://www.tkk7.com/dorado/archive/2005/07/14/7735.html'>阅读全文</a><img src ="http://www.tkk7.com/dorado/aggbug/7735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/dorado/" target="_blank">dorado技术园?/a> 2005-07-14 23:27 <a href="http://www.tkk7.com/dorado/archive/2005/07/14/7735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些dorado studio的截?/title><link>http://www.tkk7.com/dorado/archive/2005/07/14/7734.html</link><dc:creator>dorado技术园?/dc:creator><author>dorado技术园?/author><pubDate>Thu, 14 Jul 2005 15:03:00 GMT</pubDate><guid>http://www.tkk7.com/dorado/archive/2005/07/14/7734.html</guid><wfw:comment>http://www.tkk7.com/dorado/comments/7734.html</wfw:comment><comments>http://www.tkk7.com/dorado/archive/2005/07/14/7734.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/dorado/comments/commentRss/7734.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/dorado/services/trackbacks/7734.html</trackback:ping><description><![CDATA[<P><IMG height=687 alt=studio01.gif src="http://www.tkk7.com/images/blogjava_net/dorado/studio01.gif" width=942 border=0><BR><BR> <HR> <BR><IMG height=687 alt=studio02.gif src="http://www.tkk7.com/images/blogjava_net/dorado/studio02.gif" width=942 border=0><BR><BR> <HR> <P></P> <P><IMG height=687 alt=studio03.gif src="http://www.tkk7.com/images/blogjava_net/dorado/studio03.gif" width=942 border=0><BR><BR> <HR> <P></P> <P><IMG height=687 alt=studio04.gif src="http://www.tkk7.com/images/blogjava_net/dorado/studio04.gif" width=942 border=0><BR><BR> <HR> <P></P> <P><IMG height=687 alt=studio05.gif src="http://www.tkk7.com/images/blogjava_net/dorado/studio05.gif" width=942 border=0><BR><BR> <HR> <P></P> <P><IMG height=687 alt=studio06.gif src="http://www.tkk7.com/images/blogjava_net/dorado/studio06.gif" width=942 border=0><BR><BR> <HR> <BR><IMG height=687 alt=studio07.gif src="http://www.tkk7.com/images/blogjava_net/dorado/studio07.gif" width=942 border=0><img src ="http://www.tkk7.com/dorado/aggbug/7734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/dorado/" target="_blank">dorado技术园?/a> 2005-07-14 23:03 <a href="http://www.tkk7.com/dorado/archive/2005/07/14/7734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dorado技术园地开园啦!http://www.tkk7.com/dorado/archive/2005/07/14/7727.htmldorado技术园?/dc:creator>dorado技术园?/author>Thu, 14 Jul 2005 13:57:00 GMThttp://www.tkk7.com/dorado/archive/2005/07/14/7727.htmlhttp://www.tkk7.com/dorado/comments/7727.htmlhttp://www.tkk7.com/dorado/archive/2005/07/14/7727.html#Feedback0http://www.tkk7.com/dorado/comments/commentRss/7727.htmlhttp://www.tkk7.com/dorado/services/trackbacks/7727.html首先介绍一下什么是dorado?
http://www.tkk7.com/dorado/articles/7728.html
http://www.tkk7.com/dorado/articles/7733.html

详细情况(zhn)也可以到dorado真正的家http://www.bstek.com看看.

splash.jpg



]]>
վ֩ģ壺 ҹһ| aëƬav| ѹվ߹ۿ | ޳AvƬɫҹ| ˳ۺ| Ѵվ߿| һëƬһëƬaa| ۺƷ͵| Ƶ߹ۿ| ޵һAVվþþƷ˵AV| a߹ۿƵ | ޾Ʒ| av뾫Ʒþþ | ëƬַ߹ۿĻ | ƷŮٸAVѹۿ| ӰƬ鶹ӰƬѹۿ | 1000žžëƬѿ| ߿ƬvѹۿƵ777| ߾Ʒһ| ĻmvѸƵ7| һ| ŷƷպһҹҹ| ߹ۿ޳| þպƬ| 1234| ˳Ƶ߲| йһػƸѵĴƬйһɫƬ| йڵëƬѸ| 57paoƵ| Ŀַ| պƵѿ| Ůۺһ| þþƷav| Ļav| ޳AVƬ߳ˮ| ƷҳѸ߹ۿ| ޾Ʒ߹ۿ| һaëƬƵ| һƷƵ| þþƷav鶹ɫ | AVһϵ|