ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品45p,久久精品国产在热久久,欧美日韩一区二区不卡http://www.aygfsteel.com/aihua/zh-cnFri, 25 Jul 2025 05:18:54 GMTFri, 25 Jul 2025 05:18:54 GMT60¾|‘页上发送mail的编码问é¢?/title><link>http://www.aygfsteel.com/aihua/archive/2006/08/21/64716.html</link><dc:creator>aihua</dc:creator><author>aihua</author><pubDate>Mon, 21 Aug 2006 01:53:00 GMT</pubDate><guid>http://www.aygfsteel.com/aihua/archive/2006/08/21/64716.html</guid><wfw:comment>http://www.aygfsteel.com/aihua/comments/64716.html</wfw:comment><comments>http://www.aygfsteel.com/aihua/archive/2006/08/21/64716.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/aihua/comments/commentRss/64716.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/aihua/services/trackbacks/64716.html</trackback:ping><description><![CDATA[¾|‘页上发送mailæœ?¿Uå¸¸ç”¨çš„æ–¹å¼. MailTo å’?Form提交. <br /><br />两者在¾~–码斚w¢éƒ½æ˜¯ä¸€æ ïL(f¨¥ng)š„.<br /><br />如果™åµé¢æ˜¯UTF-8¾~–码格式,则发送出åŽÈš„字符串就是UTF-8,Mail客户端如果以GB2312接受,å¿…äØ“(f¨´)ä¹Þq <br /><br /><br />实际在中文win2000下测试,ž®Þq®—修改Outlook Express默认¾~–码为UTF-8åQŒä»ç„¶æ— æ³•接受正常的汉字ã€?br /><br />所以将™åµé¢ä¿®æ”¹ä¸ºGB2312是一个简单的解决æ–ÒŽ(gu¨©)¡ˆã€?br /><br /><br />˜q˜æœ‰ä¸€ä¸ªé—®é¢?br /><br /><br />如果我在日文¾pȝ»Ÿè°ƒç”¨GB2312的页面,仍然无法获取正确的汉字ã€?br /><br />解决办法是,在日文系¾lŸä¸‹åQŒæŠŠéœ€è¦çš„æ±‰å­—输到*.ASPXæ–‡äšg上(或者是JSåQ?然后再调用页面,在日文系¾lŸä¸Šž®Þpƒ½å¤Ÿå‡ºçŽ°æ­£¼‹®çš„æ±‰å­—ã€‚è™½ç„¶è¿™ä¸ªæ—¶å€™æºä»£ç å…¨éƒ¨æ˜¯äØ•ç ã€?br /><br /><br />实际上是用日文字体写中国汉字。。。。这个和¾~–码格式问题好像不一æ ?img src ="http://www.aygfsteel.com/aihua/aggbug/64716.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/aihua/" target="_blank">aihua</a> 2006-08-21 09:53 <a href="http://www.aygfsteel.com/aihua/archive/2006/08/21/64716.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>操作Excel,自动讄¡½®åˆ—高http://www.aygfsteel.com/aihua/archive/2006/08/20/64610.htmlaihuaaihuaSun, 20 Aug 2006 05:30:00 GMThttp://www.aygfsteel.com/aihua/archive/2006/08/20/64610.htmlhttp://www.aygfsteel.com/aihua/comments/64610.htmlhttp://www.aygfsteel.com/aihua/archive/2006/08/20/64610.html#Feedback1http://www.aygfsteel.com/aihua/comments/commentRss/64610.htmlhttp://www.aygfsteel.com/aihua/services/trackbacks/64610.htmlC#

 (t¨©ng)1  (t¨©ng) // / (t¨©ng)<summary>
 (t¨©ng)2  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // / (t¨©ng)自动讄¡½®Excel列高
 (t¨©ng)3  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // / (t¨©ng)</summary>
 (t¨©ng)4  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // / (t¨©ng)<param (t¨©ng)name="m_objSheet">Worksheet</param>
 (t¨©ng)5  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // / (t¨©ng)<param (t¨©ng)name="beginPos">string</param>
 (t¨©ng)6  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // / (t¨©ng)<remarks>
 (t¨©ng)7  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // / (t¨©ng)自动讄¡½®Excel列高
 (t¨©ng)8  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // / (t¨©ng)</remarks>
 (t¨©ng)9  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) public  (t¨©ng) static  (t¨©ng) void  (t¨©ng)autoSetHeight(Worksheet (t¨©ng)m_objSheet,string (t¨©ng)beginPos)
10  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) {
11  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 分解坐标
12  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)string[] (t¨©ng)rows (t¨©ng) =  (t¨©ng)beginPos.Split( ' , ' );
13  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 获取单元格对è±?/span>
14  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)Range (t¨©ng)range1 (t¨©ng) =  (t¨©ng)m_objSheet.Cells[ int .Parse(rows[ 0 ]), (t¨©ng) int .Parse(rows[ 1 ])] (t¨©ng)as (t¨©ng)Excel.Range;
15  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 获取单元格长/å®?/span>
16  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) int  (t¨©ng)iRowCount (t¨©ng) =  (t¨©ng)range1.MergeArea.Rows.Count;
17  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) int  (t¨©ng)iColumnsCount (t¨©ng) =  (t¨©ng)range1.MergeArea.Columns.Count;
18  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)
19  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // ½W¬ä¸€åˆ—宽
20  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) double  (t¨©ng)iColumnWidth (t¨©ng) =  (t¨©ng) double .Parse(range1.ColumnWidth.ToString());
21
22  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 获取æ€Èš„列宽
23  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) double  (t¨©ng)iSunColumnWidth (t¨©ng) =  (t¨©ng) 0 ;
24
25  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) for  (t¨©ng)( int  (t¨©ng)i (t¨©ng) =  (t¨©ng) 0 ; (t¨©ng)i (t¨©ng) <  (t¨©ng)iColumnsCount; (t¨©ng)i ++ )
26  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) {
27  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)Range (t¨©ng)tmp_range (t¨©ng) =  (t¨©ng)m_objSheet.Cells[ int .Parse(rows[ 0 ]), (t¨©ng)( int .Parse(rows[ 1 ]) + i)] (t¨©ng)as (t¨©ng)Excel.Range;
28  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)iSunColumnWidth (t¨©ng) =  (t¨©ng)iSunColumnWidth (t¨©ng) +  (t¨©ng) double .Parse(tmp_range.ColumnWidth.ToString());;
29  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)}

30
31
32  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 分解单元æ ?/span>
33  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)range1.UnMerge();
34
35  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 重新获取单元格第一个小å?/span>
36  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)range1 (t¨©ng) =  (t¨©ng)m_objSheet.Cells[ int .Parse(rows[ 0 ]), (t¨©ng) int .Parse(rows[ 1 ])] (t¨©ng)as (t¨©ng)Excel.Range;
37  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 获取½W¬ä¸€ä¸ªå°å—的原始高度
38  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) double  (t¨©ng)range1_height (t¨©ng) =  (t¨©ng) double .Parse(range1.RowHeight.ToString());
39  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 讄¡½®½W¬ä¸€ä¸ªå°å—䨓(f¨´)自动拉äŽ×
40  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)range1.EntireRow.AutoFit();
41  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)
42  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) int  (t¨©ng)newRows (t¨©ng) =  (t¨©ng) int .Parse(rows[ 0 ]) (t¨©ng) +  (t¨©ng)(iRowCount - 1 );
43  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) int  (t¨©ng)newColumn (t¨©ng) =  (t¨©ng) int .Parse(rows[ 1 ]) (t¨©ng) +  (t¨©ng)(iColumnsCount - 1 );
44  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 重新获取单元æ ?/span>
45  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)Range (t¨©ng)range2 (t¨©ng) = m_objSheet.get_Range(m_objSheet.Cells[ int .Parse(rows[ 0 ]), int .Parse(rows[ 1 ])],m_objSheet.Cells[newRows,newColumn]);
46  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // åˆåÆˆå•å…ƒæ ?/span>
47  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)range2.Merge( 0 );
48
49  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) double  (t¨©ng)h1 (t¨©ng) =  (t¨©ng) double .Parse(range1.RowHeight.ToString());
50  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)range2.RowHeight (t¨©ng) =  (t¨©ng)range1_height;
51  (t¨©ng)
52  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // è®¡ç®—åˆåÆˆåŽçš„å•å…ƒæ ¼çš„é«˜åº¦
53  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) double  (t¨©ng)hh (t¨©ng) =  (t¨©ng)h1 (t¨©ng) * (iColumnWidth / iSunColumnWidth);
54
55  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 如果½W¬ä¸€ä¸ªå°å—的高度˜q˜æ²¡æœ‰é»˜è®¤é«˜åº¦é«˜åQŒåˆ™ä¸è®¾¾|®é«˜åº?/span>
56  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) if (h1 (t¨©ng) >  (t¨©ng)range1_height)
57  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) {
58  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) // 如果计算后的高度比原始的高,则设新的高度åQŒåƈä¸?15åQŒè®©å­—体能够昄¡¤ºå‡ºæ¥åQŒå¦åˆ™è®¾¾|®åŽŸå§‹é«˜+15
59  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) if (hh (t¨©ng) >  (t¨©ng)range1_height)
60  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) {
61  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)range2.RowHeight (t¨©ng) =  (t¨©ng)hh (t¨©ng) +  (t¨©ng) 15 ;
62  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)}

63  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) else
64  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) {
65  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)range2.RowHeight (t¨©ng) =  (t¨©ng)range1_height;
66  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)}

67  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)
68  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)}

69  (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng)}


]]>
改进http://www.aygfsteel.com/aihua/archive/2006/07/04/56597.htmlaihuaaihuaTue, 04 Jul 2006 14:45:00 GMThttp://www.aygfsteel.com/aihua/archive/2006/07/04/56597.htmlhttp://www.aygfsteel.com/aihua/comments/56597.htmlhttp://www.aygfsteel.com/aihua/archive/2006/07/04/56597.html#Feedback0http://www.aygfsteel.com/aihua/comments/commentRss/56597.htmlhttp://www.aygfsteel.com/aihua/services/trackbacks/56597.html (t¨©ng) (t¨©ng) (t¨©ng) ‹¹ç¨‹å¦‚下.
  1. 一个页面对应一个用¾c?/li>
  2. 一个页面对应一个Struts Action.
  3. ™åµé¢ä¸Šä¸€ä¸ªåЍä½?提交按钮)对应Action一个方æ³?或者对应if语句)
  4. 一个Struts Action对应一个BO¾c?/li>
  5. 一个Struts Action æ–ÒŽ(gu¨©)³•(™åµé¢ä¸€ä¸ªåЍä½?对应BO一个方æ³?/li>
  6. 一个BO对应1到多个DAO.

 (t¨©ng) 其中业务对象BO,
  1. 都是按照无状态设计的,¾cÖM¼¼å‡½æ•°å¤§é›†å?
    1. 函数之间不考虑复用,函数之间功能独立,代码重复率高.
  2. 业务对象都是都是æ ÒŽ(gu¨©)®ç”¨ä¾‹æ¥åˆ’分的(1 vs 1).
    1. 业务对象之间不考虑关系,全部都是函数载体.
  3. DAO主要服务于业务对�基本上也� vs 1
    1. 只能服用CRUD情况.复杂的sqlæ–‡å¦‚æžœå¾ˆç›æ€¼¼å¯ä»¥åˆåƈ.
    2. ç”׃ºŽè®„¡½®ä¸Šæ˜¯ä¸ÞZ¸šåŠ¡å¯¹è±¡æœåŠ?业务对象之间讄¡½®æ²Ÿé€šå¾ˆž®?所以DAO实现也多重复
 (t¨©ng) 但是开发效率很é«?从外到里,å…¨ç¨‹ä¸€äºø™®¾è®?单独看功能完æ•?全局çœ?雷同的太多了(ji¨£n).

 (t¨©ng) 首先提炼业务对象.从全局角度考虑,划出有限个业务对è±?利用对象关系勑֋’出完整的业务逻辑.
 (t¨©ng) 其中每个业务对象与PO紧密合作,PO依赖与DAO,实现对象的基本操ä½?CRUD).
 (t¨©ng) 以上实现业务对象å±?主要用来描述业务对象之间的关¾p?已经持久化功èƒ?.

 (t¨©ng) 再设计出查询å±?支持复杂查询,获取各种查询¾l“æžœ.

 (t¨©ng) 门户层对客户ç«?Struts Action)提供业务接口,支持如下:
  1. 对业务对象层操作
  2. å¯ÒŽ(gu¨©)Ÿ¥è¯¢å±‚操作
  3. 对于复杂业务逻辑,¾l“合查询层和业务层来实现.
 (t¨©ng)
 (t¨©ng)附上代码。Â?™å¹ç›®ä»£ç 
 (t¨©ng) (t¨©ng) 主要改进如下¾c?br />
  1. CompinfoServiceImp
    1. 直接调用CompinfoåQŒä¸æ˜„¡¤ºè°ƒç”¨DAO
  2. Compinfo
    1. 内部隐藏调用DAO




]]>
现在我们的开发架æž?/title><link>http://www.aygfsteel.com/aihua/archive/2006/07/04/56593.html</link><dc:creator>aihua</dc:creator><author>aihua</author><pubDate>Tue, 04 Jul 2006 13:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/aihua/archive/2006/07/04/56593.html</guid><wfw:comment>http://www.aygfsteel.com/aihua/comments/56593.html</wfw:comment><comments>http://www.aygfsteel.com/aihua/archive/2006/07/04/56593.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/aihua/comments/commentRss/56593.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/aihua/services/trackbacks/56593.html</trackback:ping><description><![CDATA[ (t¨©ng) (t¨©ng) (t¨©ng) 首先说说我们现在采用的开发框æž?然后慢慢的进行改é€?<br /> (t¨©ng) (t¨©ng) (t¨©ng) 首先是标准的WEB应用½E‹åº.包括WEBå±?业务å±?BOå±?和持久化å±?DAO/PO).<br /> (t¨©ng) (t¨©ng) (t¨©ng) 1.WEBå±?采用Struts.<br /> (t¨©ng) (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng) 1.1 JSP™åµé¢é‡‡ç”¨ž®‘量的Struts标签,其他功能通过自定义标½{‘Ö®Œæˆ?<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 1.2 ™åµé¢æ“ä½œåˆ†äØ“(f¨´) æ·ÕdŠ (修改)/列表 两部åˆ?基本上通过CSS来展çŽ?其中列表部分采用Displaytag<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 1.3 按需要采用Ajax<br /><br /> (t¨©ng) (t¨©ng) (t¨©ng) 2.业务层采用Spring.<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 2.1 通过DelegatingActionProxy¾l‘定Struts<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 2.2 BO只有一个空父类.提供Log4j的实ä¾?<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 2.3 BO依赖与BaseDAOå?qi¨¢ng)具体业务DAO.<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 2.3.1 (t¨©ng) BaseDAO完成基本的增删改æŸ?<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 2.3.2 (t¨©ng) 具体业务DAO完成关于本表的复杂的查询<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 2.3.3 (t¨©ng) 多表兌™”的查è¯?则单独封装在DAOä¸?br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 2.4 事务控制¾lŸä¸€ç”±Spring AOP配置完成.<br /><br /> (t¨©ng) (t¨©ng) (t¨©ng) 3.持久层采用Hibernate<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 3.1 BaseDAO¾l§æ‰¿HibernateDaoSupport<br /> (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) (t¨©ng) 3.2 普通HSQL文查è¯?<br /><br /><br /> (t¨©ng) (t¨©ng) (t¨©ng) 以上是当前项目的状况,以后ä¼?x¨¬)逐一对其改进.<br /><img src ="http://www.aygfsteel.com/aihua/aggbug/56593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/aihua/" target="_blank">aihua</a> 2006-07-04 21:33 <a href="http://www.aygfsteel.com/aihua/archive/2006/07/04/56593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">ÁºÆ½ÏØ</a>| <a href="http://" target="_blank">ʯÃÅÏØ</a>| <a href="http://" target="_blank">ÖØÇìÊÐ</a>| <a href="http://" target="_blank">ÒËÐËÊÐ</a>| <a href="http://" target="_blank">³çÒåÏØ</a>| <a href="http://" target="_blank">µÇúÏØ</a>| <a href="http://" target="_blank">Î÷»ªÏØ</a>| <a href="http://" target="_blank">º£ÄþÊÐ</a>| <a href="http://" target="_blank">½Á¼ÏØ</a>| <a href="http://" target="_blank">ºÓÎ÷Çø</a>| <a href="http://" target="_blank">Àè´¨ÏØ</a>| <a href="http://" target="_blank">ÌÀÒõÏØ</a>| <a href="http://" target="_blank">ÏæÌ¶ÊÐ</a>| <a href="http://" target="_blank">DZ½­ÊÐ</a>| <a href="http://" target="_blank">ºÓÔ´ÊÐ</a>| <a href="http://" target="_blank">ËçÄþÏØ</a>| <a href="http://" target="_blank">ãä½­ÊÐ</a>| <a href="http://" target="_blank">ºþÖÝÊÐ</a>| <a href="http://" target="_blank">µ±Í¿ÏØ</a>| <a href="http://" target="_blank">ÏɾÓÏØ</a>| <a href="http://" target="_blank">µÂ°²ÏØ</a>| <a href="http://" target="_blank">ÕòêãÏØ</a>| <a href="http://" target="_blank">ºôÂêÏØ</a>| <a href="http://" target="_blank">ÇàÁú</a>| <a href="http://" target="_blank">´ó¸ÛÇø</a>| <a href="http://" target="_blank">éŽ­ÏØ</a>| <a href="http://" target="_blank">ÉÛÎäÊÐ</a>| <a href="http://" target="_blank">²©°®ÏØ</a>| <a href="http://" target="_blank">Ëþ³ÇÊÐ</a>| <a href="http://" target="_blank">°¢Í¼Ê²ÊÐ</a>| <a href="http://" target="_blank">°¢Â³¿Æ¶ûÇ߯ì</a>| <a href="http://" target="_blank">¼Ñľ˹ÊÐ</a>| <a href="http://" target="_blank">À¶ÌïÏØ</a>| <a href="http://" target="_blank">½¨ÄþÏØ</a>| <a href="http://" target="_blank">ÑÎÍ¤ÏØ</a>| <a href="http://" target="_blank">¸·Æ½ÏØ</a>| <a href="http://" target="_blank">Ì©°²ÊÐ</a>| <a href="http://" target="_blank">Æû³µ</a>| <a href="http://" target="_blank">ÑØºÓ</a>| <a href="http://" target="_blank">»ñ¼ÎÏØ</a>| <a href="http://" target="_blank">ÇìÔÆÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>