锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲精品2021自在线,91亚洲自偷手机在线观看,亚洲国产精品一区二区久http://www.tkk7.com/beauty_beast/archive/2006/06/24/54840.html鏌抽殢椋?/dc:creator>鏌抽殢椋?/author>Sat, 24 Jun 2006 02:59:00 GMThttp://www.tkk7.com/beauty_beast/archive/2006/06/24/54840.htmlhttp://www.tkk7.com/beauty_beast/comments/54840.htmlhttp://www.tkk7.com/beauty_beast/archive/2006/06/24/54840.html#Feedback1http://www.tkk7.com/beauty_beast/comments/commentRss/54840.htmlhttp://www.tkk7.com/beauty_beast/services/trackbacks/54840.html闃呰鍏ㄦ枃

]]>
Spring妗嗘灦瀛︿範浜岀瘒澶?---鍦╓EBMVC瀛︿範閬囧埌鐨勯棶棰?/title><link>http://www.tkk7.com/beauty_beast/archive/2006/05/25/48086.html</link><dc:creator>鏌抽殢椋?/dc:creator><author>鏌抽殢椋?/author><pubDate>Thu, 25 May 2006 10:10:00 GMT</pubDate><guid>http://www.tkk7.com/beauty_beast/archive/2006/05/25/48086.html</guid><wfw:comment>http://www.tkk7.com/beauty_beast/comments/48086.html</wfw:comment><comments>http://www.tkk7.com/beauty_beast/archive/2006/05/25/48086.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/beauty_beast/comments/commentRss/48086.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/beauty_beast/services/trackbacks/48086.html</trackback:ping><description><![CDATA[ <p>榪欎袱澶╁湪瀛︿範SpringMVC閬囧埌涓や釜姣旇緝閮侀椃鐨勯棶棰橈紝浼拌鏂板鑰呭緢瀹規槗閬囧埌錛屽拰澶у鍒嗕韓涓涓嬶紝閬垮厤鍑虹幇綾諱技鐨勯棶棰樸?br />1銆?No request handling method with name 'insert' in class聽 "ClassName"錛岄〉闈㈡樉紺轟負404閿欒<br />榪欎釜闂鍑虹幇鍦ㄤ嬌鐢ㄥ鎿嶄綔鎺у埗鍣ㄦ儏鍐典笅錛岀浉鍏崇殑鎿嶄綔鏂規硶涓搴旂殑鏂規硶鍙傛暟鍓嶄袱浣嶅繀欏繪槸request,response瀵硅薄錛屽繀欏昏鏈夛紝鍚﹀垯浼氭姤濡備笂寮傚父銆?br />2銆佽繖涓棶棰樺洶鎯戜簡鎴戝崐澶╋紝鍦ㄧ綉涓婁篃鏈夌被浼肩殑闂錛屼絾娌℃湁姝g‘瑙e喅鏂規硶錛屽紓甯稿涓嬶細<br />javax.servlet.ServletException: ModelAndView [ModelAndView: materialized View is [null]<br />榪欎釜闂鍙兘鍑虹幇鐨勫満鏅緢澶氾紝鎴戞墍鎻忚堪鐨勫彧鏄叾涓箣涓錛屾病鏈夌浉鍏寵В鍐蟲柟娉曪紝鍙湁鏌ョ湅鐩稿叧婧愪唬鐮侊紝寮婧愬氨鏄湁榪欎釜濂藉銆?br />寮傚父鎶涘嚭浠g爜涓猴細<br />聽聽聽聽聽聽聽 at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:924)<br />鏌ョ湅浜嗙浉鍏蟲簮浠g爜錛屼竴灞備竴灞傜湅涓嬪幓<br />棣栧厛鍦∕odelAndView 綾誨疄渚嬫槸鍦―ispatcherServlet綾諱腑鐨刣oDispatch鏂規硶涓垱寤虹殑錛?br />鍐嶈窡韙猟oDispatch鏂規硶涓浉鍏充唬鐮佽<br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">HandlerAdapter聽ha聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽getHandlerAdapter(mappedHandler.getHandler());<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />mv聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽ha.handle(processedRequest,聽response,聽mappedHandler.getHandler());<br /><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span> </div> <p>ha鏄竴涓帴鍙e疄鐜扮被錛屽湪璇ュ満鏅笅錛屽搴旂殑鎺ュ彛瀹炵幇綾諱負錛?br />org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter<br /><br />SimpleControllerHandlerAdapter綾諱腑瀵瑰簲鐨勫疄鐜頒唬鐮佷負錛?/p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #000000">((Controller)聽handler).handleRequest(request,聽response)</span> </div> <p>璋冪敤鐨勬槸瀵瑰簲鐨凜ontroller鎺ュ彛涓柟娉曪紝褰撳墠Controller瀵瑰簲鐨勬帴鍙e疄鐜扮被涓烘垜浠厤緗殑鑷畾涔夋帶鍒剁被錛屼竴鑸戶鎵夸簬org.springframework.web.servlet.mvc.SimpleFormController;涓灞備竴灞傚啀璺熻釜鍙戠幇錛?br />SimpleFormController緇у眰浜庡悓鍖匒bstractFormController綾伙紝鑰?br />AbstractFormController緇ф壙浜庡悓鍖匒bstractController綾伙紝瀵瑰簲鐨?br />handleRequest(request,response)鍦ˋbstractController綾諱腑瀹炵幇錛屾渶緇堣皟鐢ㄤ唬鐮佸涓嬶細<br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽handleRequestInternal(request,聽response)</span> </div> <p>handleRequest鏂規硶涓轟竴涓娊璞℃柟娉曪紝鍦ˋbstractFormController綾諱腑瀹炵幇錛岀粓浜庢壘鍒板師鍥犱簡錛屽懙鍛?br /></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /> <span style="COLOR: #0000ff">protected</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">final</span> <span style="COLOR: #000000">聽ModelAndView聽handleRequestInternal(HttpServletRequest聽request,聽HttpServletResponse聽response)<br /><img id="Codehighlighter1_129_1027_Open_Image" onclick="this.style.display='none'; Codehighlighter1_129_1027_Open_Text.style.display='none'; Codehighlighter1_129_1027_Closed_Image.style.display='inline'; Codehighlighter1_129_1027_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_129_1027_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_129_1027_Closed_Text.style.display='none'; Codehighlighter1_129_1027_Open_Image.style.display='inline'; Codehighlighter1_129_1027_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">throws</span> <span style="COLOR: #000000">聽Exception聽</span> <span id="Codehighlighter1_129_1027_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_129_1027_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽Form聽submission聽or聽new聽form聽to聽show?</span> <span style="COLOR: #008000"> <br /> <img id="Codehighlighter1_207_926_Open_Image" onclick="this.style.display='none'; Codehighlighter1_207_926_Open_Text.style.display='none'; Codehighlighter1_207_926_Closed_Image.style.display='inline'; Codehighlighter1_207_926_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_207_926_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_207_926_Closed_Text.style.display='none'; Codehighlighter1_207_926_Open_Image.style.display='inline'; Codehighlighter1_207_926_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(isFormSubmission(request))聽</span> <span id="Codehighlighter1_207_926_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_207_926_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽Form聽submission:聽in聽session-form聽mode,聽we聽need聽to聽find<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽the聽form聽object聽in聽the聽HTTP聽session.</span> <span style="COLOR: #008000"> <br /> <img id="Codehighlighter1_338_625_Open_Image" onclick="this.style.display='none'; Codehighlighter1_338_625_Open_Text.style.display='none'; Codehighlighter1_338_625_Closed_Image.style.display='inline'; Codehighlighter1_338_625_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_338_625_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_338_625_Closed_Text.style.display='none'; Codehighlighter1_338_625_Open_Image.style.display='inline'; Codehighlighter1_338_625_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(isSessionForm())聽</span> <span id="Codehighlighter1_338_625_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_338_625_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽HttpSession聽session聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽request.getSession(</span> <span style="COLOR: #0000ff">false</span> <span style="COLOR: #000000">);<br /><img id="Codehighlighter1_488_620_Open_Image" onclick="this.style.display='none'; Codehighlighter1_488_620_Open_Text.style.display='none'; Codehighlighter1_488_620_Closed_Image.style.display='inline'; Codehighlighter1_488_620_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_488_620_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_488_620_Closed_Text.style.display='none'; Codehighlighter1_488_620_Open_Image.style.display='inline'; Codehighlighter1_488_620_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000">聽(session聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #000000">||</span> <span style="COLOR: #000000">聽session.getAttribute(getFormSessionAttributeName(request))聽</span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000">聽</span> <span style="COLOR: #0000ff">null</span> <span style="COLOR: #000000">)聽</span> <span id="Codehighlighter1_488_620_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_488_620_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽Cannot聽submit聽a聽session聽form聽if聽no聽form聽object聽is聽in聽the聽session.</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽handleInvalidSubmit(request,聽response);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽Found聽form聽object聽in聽HTTP聽session:聽fetch聽form聽object,<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽bind,聽validate,聽process聽submission.</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽聽聽聽聽聽聽Object聽command聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽getCommand(request);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽ServletRequestDataBinder聽binder聽</span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000">聽bindAndValidate(request,聽command);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽processFormSubmission(request,聽response,聽command,聽binder.getErrors());<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> <br /> <img id="Codehighlighter1_936_1024_Open_Image" onclick="this.style.display='none'; Codehighlighter1_936_1024_Open_Text.style.display='none'; Codehighlighter1_936_1024_Closed_Image.style.display='inline'; Codehighlighter1_936_1024_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /> <img id="Codehighlighter1_936_1024_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_936_1024_Closed_Text.style.display='none'; Codehighlighter1_936_1024_Open_Image.style.display='inline'; Codehighlighter1_936_1024_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">else</span> <span style="COLOR: #000000">聽</span> <span id="Codehighlighter1_936_1024_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.tkk7.com/images/dot.gif" /> </span> <span id="Codehighlighter1_936_1024_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">聽New聽form聽to聽show:聽render聽form聽view.</span> <span style="COLOR: #008000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" /> </span> <span style="COLOR: #000000">聽聽聽聽聽聽聽聽聽聽聽聽</span> <span style="COLOR: #0000ff">return</span> <span style="COLOR: #000000">聽showNewForm(request,聽response);<br /><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />聽聽聽聽聽聽聽聽}</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />聽聽聽聽}</span> </span> </div> <p>鍘熷洜瀹為檯寰堢畝鍗曪紝灝卞洜涓烘垜鍦ㄨ鎻愪氦鐨勮〃鍗曚腑娌℃湁閲囩敤post鏂規硶錛屽懙鍛?br />鑰宨sFormSubmission(request)灝辨槸鏍規嵁姝ら」鍒ゆ柇錛屾墍浠ュ叾瀹為檯鎵ц鐨勪唬鐮佷負錛?br />return showNewForm(request, response);<br />鑰屾垜鍦ㄥ搴旂殑閰嶇疆灞炴т腑娌℃湁閰嶇疆瀵瑰簲灞炴?formView鍊鹼紝鍥犱負鎴戞湰鏉ュ氨涓嶆槸瑕佸睍鐜頒竴涓柊琛ㄥ崟銆?br />鏁呮渶鍚庤繑鍥炵殑ModelAndView涓虹┖銆?br /><br />闂閮借В鍐充簡錛屽彧鏄病鎯沖埌瀵規彁浜よ〃鍗曡繖涔堜弗鏍鹼紝鍏朵粬web妗嗘灦鏄病鏈夎繖縐嶉檺鍒訛紝涓嶈繃涔熸病澶氬ぇ鍏崇郴錛屽湪瀹為檯寮鍙戜腑鎴戜滑澶ч兘鏄噰鐢╬ost鏂瑰紡鎻愪氦琛ㄥ崟鐨勩?br /><br /></p> <img src ="http://www.tkk7.com/beauty_beast/aggbug/48086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/beauty_beast/" target="_blank">鏌抽殢椋?/a> 2006-05-25 18:10 <a href="http://www.tkk7.com/beauty_beast/archive/2006/05/25/48086.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring妗嗘灦瀛︿範涓----鍩烘湰閰嶇疆http://www.tkk7.com/beauty_beast/archive/2006/05/25/48064.html鏌抽殢椋?/dc:creator>鏌抽殢椋?/author>Thu, 25 May 2006 08:39:00 GMThttp://www.tkk7.com/beauty_beast/archive/2006/05/25/48064.htmlhttp://www.tkk7.com/beauty_beast/comments/48064.htmlhttp://www.tkk7.com/beauty_beast/archive/2006/05/25/48064.html#Feedback4http://www.tkk7.com/beauty_beast/comments/commentRss/48064.htmlhttp://www.tkk7.com/beauty_beast/services/trackbacks/48064.html聽聽聽聽聽聽聽聽 鑺變簡涓や笁澶╃湅浜嗙浉鍏蟲枃妗o紝鍙槸鍒濇浜嗚В鐩稿叧閰嶇疆錛屾病鏈夊仛娣卞叆浜嗚В錛屾墠杈懼埌鍩烘湰浼氫嬌鐢ㄩ厤緗殑鐩殑銆?br />
涓漢鐞嗚В錛?/strong>
聽聽聽聽聽聽聽聽 Spring 鏈鍩烘湰鐨勭殑鍔熻兘鏄彁渚涢氳繃閰嶇疆綆$悊浠繪剰綾伙紝鎻愪緵浜咮ean綆$悊瀹瑰櫒銆傝繖涔熸槸Spring鏈鍩虹錛屾渶鏍稿績鐨勫姛鑳斤紝鍦⊿pring妗嗘灦涓紝涓鍒囩殕涓築ean,瀹為檯涓婂湪鎴戜滑鐨勬棩甯稿紑鍙戜腑錛屽線寰鏇村鐨勬槸鍜孊ean鐩稿叧鐨勫紑鍙戯紝騫朵笖閮芥槸鐭敓鍛藉懆鏈燂紝闄や簡涓浜涚紦瀛樺姛鑳斤紝鍏朵粬寰堝閲嶈鐨勫姛鑳介兘鏄敱寮婧愭鏋跺畬鎴愩?br />聽聽聽聽聽聽聽 瀹炵幇鏂瑰紡涔熸槸妗嗘灦甯哥敤鐨勫弽灝勬満鍒?鍥犳浣跨敤Spring鍓嶆彁鍦↗VM鍚姩鍙傛暟涓笉鑳藉姞瀹夊叏綆$悊閰嶇疆銆?br />聽聽聽聽聽聽聽 Spring涓墍鏈夌殑Bean鐩稿叧閰嶇疆鍧囦負涓涓枃浠訛紝闈炲父闆嗕腑錛屼釜浜烘劅瑙夎繖鏈夊埄鏈夊紛錛屽埄澶т簬寮娿?br />聽聽聽聽聽聽聽 緇熶竴閰嶇疆姣旇緝鏂逛究闆嗕腑錛屾垜鏈榪戠殑欏圭洰灝辨槸鏈夊緢澶氬瓙緋葷粺錛岄櫎浜嗕竴浜涘叕鐢ㄧ殑閰嶇疆鏂囦歡錛岃繕鏈夊緢澶氬瓙緋葷粺鐨勯厤緗枃浠訛紝姣忔榪佺Щ鐜鏄潪甯哥瘡鐨勪簨錛屽鏋滃彧鏈変竴涓厤緗枃浠訛紝閭e伐浣滃氨浼氳交鏉懼浜嗐?br />聽聽聽聽聽聽聽 緙虹偣涔熷氨鍦ㄤ簬寰堥泦涓紝濡傛灉閰嶇疆鏈夎錛屾暣涓郴緇熶笉鍙敤錛岃繖縐嶆儏鍐靛線寰鍙戠敓鍦ㄧ郴緇熷崌綰ч樁孌碉紝涔熸瘮杈冨皯錛屽嵆浣垮嚭鐜伴棶棰樹篃姣旇緝濂藉畾浣嶃?br />聽聽聽聽聽聽聽聽聽Spring鎻愪緵浜咮ean綆$悊瀹瑰櫒錛岃繖涓姛鑳藉彲浠ュぇ澶х畝鍖栦笟鍔$郴緇熺殑閰嶇疆寮鍙戝伐浣溿?br />聽聽聽聽聽聽聽聽 涓漢鎰熻灝嗘潵鐨勫紑鍙戝伐浣滄洿澶氱殑鏄厤緗紝緙栧啓涓氬姟鐩稿叧鐨凚ean浠ュ強涓氬姟鏂規硶,鍏朵粬鍔熻兘鍧囦細鏈夊緢澶氫紭縐鐨勫紑婧愭鏋跺疄鐜幫紝閲嶈鐨勫伐浣滄槸閫夋嫨絎﹀悎欏圭洰鐨勬鏋躲佺啛鎮夋鏋訛紝鏈閲嶈鐨勮繕鏄嫤淇唴鍔燂紝娣卞叆瀛︿範java錛屽洜涓轟竾鍙樹笉濡傚叾涓紝鍐嶈寮婧愪笉鏄竾鑳界殑錛屾湁鏃跺欒繕鏄闈犺嚜宸辯殑銆?br />聽聽聽聽聽聽聽聽

瀛︿範蹇冨緱錛?br />Spring鎻愪緵涓夌鍒涘緩綾誨疄渚嬫柟娉?
聽聽聽 a銆侀氳繃鏋勯犲嚱鏁幫紝璁塊棶灞炴у彲浠ユ槸浠繪剰
聽聽聽 b銆侀氳繃瀵瑰簲綾葷殑闈欐佸伐鍘傛柟娉曪紝娉ㄦ剰涓嶈兘鏄鏈夌殑
聽聽聽聽 c銆侀氳繃宸ュ巶綾葷殑瀹炰緥宸ュ巶鏂規硶錛屾槸闈為潤鎬佺殑鏂規硶

錛嶃乥ean鑺傜偣鐩稿叧涓昏灞炴э細
聽聽聽聽 id/name聽聽聽聽聽聽聽聽聽 瀹炰緥鍚?鍒悕
聽聽聽聽 class聽聽聽聽聽聽聽聽聽聽聽聽聽 蹇呴』銆佺被鍏ㄥ悕
聽聽聽聽 singleton聽聽聽聽聽聽聽 鏄惁涓哄崟瀹炰緥錛岄粯璁や負true
聽聽聽聽 init-method聽聽聽聽 鍒濆鍖栨柟娉?br />聽聽聽聽 depends-on聽聽聽 鎸囧畾渚濊禆Bean,瀹炵幇鍦ㄨ渚濊禆Bean瀹炰緥鍒涘緩鍓嶏紝瀵逛緷璧栫殑涓涓垨澶氫釜Bean鐨勫疄渚嬪寲,聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽 聽init-method鍦ㄥ搴擝ean瀹炰緥宸茬粡鍒涘緩鍚庤皟鐢?br />聽聽聽聽 destroy-method聽聽 閲婃斁鍥炶皟鏂規硶錛屽父鐢ㄤ簬璧勬簮閲婃斁
聽聽聽聽 dependency-check 渚濊禆媯鏌?br />聽聽聽聽 parent聽聽聽聽聽聽聽聽聽聽 鎸囧畾鐖禕ean瀹炰緥錛屽噺灝戝洜緇ф壙鍏崇郴鐨勯噸澶嶉厤緗?/p>

聽聽聽聽 璇存槑闄ら厤緗甶nit-method,destory浠ュ錛屽彲浠ュ湪瀵瑰簲Bean涓疄鐜癐nitializingBean,DisposableBean涓や釜鎺ュ彛鏂規硶
聽聽聽聽 Spring瀹瑰櫒涓嶈礋璐g鐞嗛潪鍗曞疄渚嬬殑Bean

閰嶇疆bean浜嬮」錛?br />1銆佹敞鎰忓湪閫氳繃鏋勯犲櫒鍙傛暟鍖歸厤鏃訛紝蹇呴』鎸囧畾鍙傛暟鐨勫簭鍙鳳紝鍚屾椂寤鴻鏄庣‘璇存槑綾誨瀷錛?br />聽 <constructor-arg index="0"><value>128</value></constructor-arg>
聽 <constructor-arg index="1"><value>teststring</value></constructor-arg>聽
聽 鏈濂借鏄庣浉鍏沖弬鏁扮被鍨嬬被鍨嬄?
聽 <constructor-arg index="0" type="int"><value>128</value></constructor-arg>
聽 <constructor-arg index="1" type="java.lang.String"><value>teststring</value></constructor-arg>聽
聽 鍙互浣跨敤綆鍖栭厤緗?br />聽 <constructor-arg index="0" type="int"聽 value="128"/>
聽 <constructor-arg index="1" type="java.lang.String" value="testString"/>
聽聽聽
2銆佸睘鎬т負絀?br />聽聽聽 <property name="pro1><null/></property>
3銆佺┖涓?
聽聽聽 <property name="pro1><value></value></property>聽聽

浜屻佸父鐢╡lements
bean | ref | idref | value | null | list | set | map | props

璇存槑錛?br />聽聽聽聽 bean聽聽聽聽聽 鍒涘緩涓涓柊鐨刡ean瀹炰緥
聽聽聽聽 ref聽聽聽聽聽聽聽聽 寮曠敤宸茬粡鍒涘緩鐨刡ean瀹炰緥
聽聽聽聽 value聽聽聽聽聽 綆鍗曟暟鎹被鍨?br />聽聽聽聽 null聽聽聽聽聽聽聽聽 絀烘寚閽?br />聽聽聽聽 list聽聽聽聽聽聽聽聽 鍒涘緩java.util.ArrayList瀵硅薄瀹炰緥
聽聽聽聽 set聽聽聽聽聽聽聽聽 鍒涘緩java.util.LinkedHashSet瀵硅薄瀹炰緥
聽聽聽聽 map聽聽聽聽聽聽 鍒涘緩java.util.LinkedHashMap瀵硅薄瀹炰緥
聽聽聽聽 props聽聽聽聽 鍒涘緩java.util.Properties瀹炰緥聽聽聽

list,set,map鍙互澶氬眰宓屽閰嶇疆


閬楃暀闂錛?br />idref 閰嶇疆娌℃湁璧蜂綔鐢紝綾諱技value閰嶇疆錛屾祴璇曡緭鍑轟負瀛楃涓插璞★紝鏄惁閰嶇疆涓嶆紜?

涓婅堪閰嶇疆鑼冨洿鍩烘湰瑕嗙洊浜嗘垜浠紑鍙戞椂鐨刡ean浣跨敤鎯呭喌錛岃瑙侀厤緗彲浠ュ弬鑰僤td
http://www.springframework.org/dtd/spring-beans.dtd


ApplicationContext 緇ф壙浜嶣eanFactory鐩稿叧鎺ュ彛錛岄拡瀵逛紒涓氬簲鐢ㄧ駭鐨勶紝鍗犳湁鍐呭瓨杈冨
BeanFactory聽聽聽聽 鎻愪緵閰嶇疆妗嗘灦鍜屽熀鏈姛鑳斤紝閫傜敤浜庡鍐呭瓨鏈夐檺鍒剁殑鐩稿叧搴旂敤
鍔熻兘錛?br />1銆佹彁渚涙秷鎭闂紝ApplicationContext 鏈韓緇ф壙浜嶮essageSource鎺ュ彛錛?br />聽聽 ApplicationContext 鍔犺澆鏃舵煡鎵懼搴旂殑MessageSource Bean, bean id 蹇呴』涓簃essageSource
聽聽 Spring妗嗘灦鎻愪緵涓や釜MessageResource瀹炵幇錛?br />聽聽聽 org.springframework.context.support.ResourceBundleMessageSource
聽聽聽 org.springframework.context.support.StaticMessageSource
2銆佷簨浠朵紶閫?br />3銆佷嬌鐢ㄨ祫婧?br />



]]>
Spring妗嗘灦瀛︿範鍓嶈█---鎴戠殑寮婧愭鏋朵嬌鐢ㄥ績寰椾綋浼?/title><link>http://www.tkk7.com/beauty_beast/archive/2006/05/16/46421.html</link><dc:creator>鏌抽殢椋?/dc:creator><author>鏌抽殢椋?/author><pubDate>Tue, 16 May 2006 07:45:00 GMT</pubDate><guid>http://www.tkk7.com/beauty_beast/archive/2006/05/16/46421.html</guid><wfw:comment>http://www.tkk7.com/beauty_beast/comments/46421.html</wfw:comment><comments>http://www.tkk7.com/beauty_beast/archive/2006/05/16/46421.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/beauty_beast/comments/commentRss/46421.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/beauty_beast/services/trackbacks/46421.html</trackback:ping><description><![CDATA[ <p> </p> <p> <strong>鐩殑錛?/strong> <br />鍦ㄥ疄闄呴」鐩腑鍑轟簬紼沖畾鎬т互鍙婂洟闃熷紑鍙戞妧鑳芥垜涓鐩存病鑰冭檻閲囩敤Spring妗嗘灦錛屾渶榪戞湁鏃墮棿灝辮鍒掑涔燬pring妗嗘灦錛屼負浠ュ悗鐨勯」鐩紑鍙戝仛鐩稿叧鐨勬妧鏈偍澶囥?/p> <p> <br /> <strong>鍥為【錛?/strong> <br />寮婧愭鏋跺湪浠ュ墠鐨勯」鐩腑鐢ㄨ繃涓嶅皯錛?struts,webwork,hibernate,鍓嶄袱鑰呭睘浜巜eb妗嗘灦錛屽悗鑰呭睘浜嶰RM妗嗘灦錛岃繖浜涙鏋跺熀鏈兘鏄晶閲嶄簬搴旂敤鐨勬煇涓眰闈紝涓嶈兘縐頒箣涓篔2EE鍏ㄩ潰鐨勬鏋訛紝寰寰鏄渶瑕佸拰鍏朵粬妗嗘灦鐩哥粨鍚堬紝鎴戝紑鍙戠殑欏圭洰閲囩敤榪囧涓嬬粍鍚堬紝鏈夌殑鏍規湰灝辨病鏈夋鏋訛紝鍙槸鑷繁鍋氫簡璁捐灝佽<br />a銆乻ervlet+jdbc,<br />b銆乻ervlet+jsp+javabean+jdbc,<br />c銆乻truts+BD+DAO ,<br />d銆亀ebwork+ejb+hibernate <br /><br /><strong>浣跨敤浣撲細錛?/strong></p> <p>聽a銆乥灝變笉瑕佽浜嗭紝閭f椂鍊欑殑浠g爜緇撴瀯鐪熸槸澶╅┈琛岀┖錛屾垜褰撴椂鍒濆錛岀淮鎶ゅ叕鍙鎬竴涓」鐩唬鐮侊紝1涓猨sp瀹炵幇涓涓ā鍧楁墍鏈夊姛鑳斤紝鎴戣姳浜嗗ソ闀挎椂闂存墠聽璇繪噦浠g爜銆?br />聽 鏃朵唬鎬繪槸鍚戝墠鍙戝睍鐨勶紝鎱㈡參鐨勭郴緇熺粨鏋勫眰嬈′笂鏄秺鏉ヨ秺娓呮櫚錛屽紑鍙戞晥鐜囦篃瓚婃潵瓚婇珮錛岀淮鎶や篃瓚婃潵瓚婂鏄擄紙鍩轟簬涓瀹氱殑鍩硅鎴愭湰錛夈?br />聽<br /><font color="#6666ff">聽鐩稿鑰岃█鍑轟簬璁捐鐞嗗康鏉ヨ錛屼釜浜烘洿鍠滄webwork+hibernate妗嗘灦緇勫悎銆?/font>聽<br /><br />聽甯告湁浜鴻璁哄悓絳夊紑鍙戝眰闈㈡鏋剁殑浼樼己鐐癸紝鎴戞墍灞炰駭鍝佺殑鍙﹀涓涓」鐩洟闃熸浘緇忎負欏圭洰鍚庣畫寮鍙?搴旇閲囩敤struts榪樻槸webwork浜夎鐨勪笉鍙紑浜わ紝聽鍏跺疄涓漢璁や負struts,webwork閮芥槸闈炲父濂界殑web妗嗘灦錛岄兘鏈夎嚜韜殑浼樼己鐐癸細<br />聽struts寮鍒泈eb MVC妗嗘灦涔嬪厛娌籌紝2003錛?004騫村紑鍙戠殑欏圭洰鍩烘湰閮芥槸閲囩敤struts妗嗘灦錛堝綋鏃舵嫑鑱樹漢鐨勬椂鍊欏父闂細涓嶄細struts錛屼細鍩烘湰灝辨嫑浜喡狅級錛屽疄闄匨VC璁捐鐞嗗康寰堟棭灝辨彁鍑轟簡錛屽湪j2SE涓湁寰堝浣跨敤涔嬪錛屼絾褰撴椂娌℃湁涓涓獁eb妗嗘灦寮鍙戜腑寰堝ソ鐨勮瘡褰昏璁捐鐞嗗康錛岀洿鍒皊truts聽鍑虹幇錛堝彲鑳芥湁錛屽彧鏄病鏈塧pache鏇村紩浜烘敞鎰忥級銆?br /><br />聽struts浼樼偣浣跨敤鐢ㄦ埛澶氾紝鐩稿叧鎶鏈枃妗f瘮杈冨叏闈紝寮鍙戦亣鍒扮殑闂鐩稿叧妗堜緥涔熸瘮杈冨銆佹瘮杈冨鏄撹В鍐籌紝妗嗘灦鏇村姞紼沖畾(榪欎竴鐐歸潪甯擱噸瑕侊級銆?br />聽<br />聽webwork鐩稿浜巗truts鏉ヨ錛岀殑紜湁涓嶅皯浼樺紓涔嬪錛岋紙涔熸槸鎯呯悊涔嬩腑鐨勪簨錛屽悗鍙戝竷鐨勬鏋跺鏋滃啀娌℃湁浼樼偣鍒漢涔熶笉浼氫嬌鐢級<br />聽涓漢璁や負鍦ㄥ紑鍙戜笂涓昏鏈変互涓嬪嚑鐐癸細<br /><br />聽1銆侀〉闈㈡暟鎹皝瑁呮垚鍊煎璞″姛鑳芥瘮struts寮哄ぇ錛寃ebwork閲囩敤ognl綾誨瀷杞寲銆?br />聽struts鍙兘瀵圭畝鍗曠被鍨嬬殑鏁版嵁瀵硅薄浠ュ強鏂囦歡瀵硅薄灝佽鎴愬煎璞?聽鑰寃ebwork灝佽鐨勫煎璞″熀鏈病鏈夐檺鍒訛紝鍊煎璞″睘鎬ц繕鍙互鏄疞ist,Map榪欎簺瀵硅薄錛堣繖涓壒鎬у湪鎴戜滑寮鍙戜竴浜涙壒閲忔暟鎹佸鏉傛暟鎹鐞嗘椂闈炲父鏂逛究錛夛紝鍑忓皯寰堝浠g爜閲忥紝浠g爜闈炲父鏁存磥銆?br />聽<br />聽2銆佹嫤鎴櫒鍔熻兘<br />聽鎷︽埅鍣ㄦ槸webwork鐨勪竴涓寒鐐癸紝瀹為檯涓婁篃鏄笟鐣屾瘮杈冩祦琛岀殑AOP鐨勪竴涓綋鐜幫紝鍦ㄥ疄闄呭紑鍙戜腑浣犲彲浠ラ厤緗粯璁ょ殑鎷︽埅鍣紝聽涔熷彲浠ヤ負鍗曠嫭鐨勬ā鍧楁寚瀹氱壒瀹氱殑鎷︽埅鍣紝騫朵笖鍙嚜瀹氫箟鎷︽埅鍣紝action鎵ц鍓嶅悗鎷︽埅閮藉彲浠ャ偮?br />聽<br />聽3銆佸崟鍏冩祴璇曟瘮杈冩柟渚?br />聽鏈鏃╀嬌鐢╯truts妗嗘灦寮鍙戞祴璇曟椂錛岀浉鍏崇殑鍗曞厓嫻嬭瘯鍩烘湰鏄笉濂藉仛鐨勶紝鏃犳硶鑴辯web鐜錛屾祴璇曢兘鏄彧鍋氶泦鎴愭祴璇曘佺郴緇熸祴璇曘?br />聽浣跨敤webwork鍙互綆鍗曞action鐩稿叧灞炴ц祴鍊鹼紝鍙互鐩稿叧鐨勫崟鍏冩祴璇曪紝褰撶劧鍓嶆彁鏄湪瀵瑰簲action涓病鏈夊紩鐢╳eb鐜鐩稿叧鐨勫璞°偮?br />聽鍏跺疄webwork妗嗘灦鏍稿績榪樻槸xwork妗嗘灦錛屾渶鏃╂鏋朵嬌鐢ㄥ湪C/S緇撴瀯涓嬶紝webwork鍙槸xwork鐨勪竴涓湪web鐜鐨勫疄鐜幫紝鍙槸ActionContext聽涓婁笅鏂囧彂鐢熶簡鍙樺寲錛屾墍浠ヨaction鑳藉鍋氬埌鑴辯web鐜涔熸槸鎯呯悊涔嬩腑鐨勩?/p> <p> <br />4銆侀厤緗枃浠?br />webwork閰嶇疆鏂囦歡鍙互閲囩敤寮曠敤銆佺戶鎵垮叾浠栭厤緗枃浠舵柟寮忥紝鍦ㄥ洟闃熷紑鍙戜竴鑸兘鏄垎妯″潡寮鍙戯紝榪欐牱姣旇緝鏂逛究錛岄厤緗鐞嗘洿瀹規槗錛屼笉浼氬啿紿併?br /><br />5銆佹ā鏉挎妧鏈泦鎴?br />聽鎴戝湪瀹為檯搴旂敤欏圭洰涓槸閲囩敤velocity妯℃澘鍋氳鍥懼睍鐜幫紝鍥犱負鍦ㄥ搴旂増鏈殑webwork妗嗘灦涓拰velociy闆嗘垚鐨勭浉褰撳ソ錛屾瘮杈冩柟渚匡紝聽姣旂洿鎺ュ啓jsp浠g爜鏇存暣媧併佸悓鏃跺埄鐢╲elocity妯℃澘鐗規х粨鍚堟瘡涓猘ction鐨勯厤緗枃浠訛紝鍙疄鐜版瘮杈冮氱敤鐨勯〉闈㈡煡璇€佸綍鍏ョ瓑瑙嗗浘鐨勫睍鐜般?br />聽鑰宻truts鏄病鏈夌浉鍏蟲ā鏉塊泦鎴愶紝涓嶈繃struts鐨則ag鐩稿鑰岃█姣攚ebwork鐨則ag濂界敤錛寃ebwork濡傛灉瑙嗗浘鏄痡sp綾誨瀷錛岀浉鍏崇殑tag鐪熺殑姣旇緝楹葷儲,聽铏界劧tag 搴撳緢涓板瘜錛岃繖涔熸槸鎴戜負浠涔堜嬌鐢╲elocity鍋氳鍥劇殑鍘熷洜 銆偮?br />聽<br />6銆?妗嗘灦鐨勬晥楠屽姛鑳?br />聽鑰佸疄璇達紝涓よ呮鏋剁殑鏁堥獙鍔熻兘閮芥瘮杈冮夯鐑︼紝鐩稿鑰岃█webwork鏇村姞楹葷儲鐐癸紝閰嶇疆杈冨錛岄獙璇佹帴鍙e疄鐜板お楹葷儲錛屾垜瀹為檯欏圭洰浣跨敤涓繕鏄犺嚜瀹氫箟浜嗙浉鍏沖悗鍙伴獙璇佹帴鍙o紝 瑕侀獙璇佺殑鐩稿叧action鍙瀹炵幇鐩稿叧鎺ュ彛鍗沖彲錛岀浉鍏蟲嫤鎴櫒璐熻矗鎷︽埅楠岃瘉錛屄犲ぇ閮ㄥ垎鐨勬晥楠屾牴鎹厤緗暟鎹互鍙奾tml瀵硅薄鑷畾涔夊睘鎬ч氳繃javascript閫氱敤鏁堥獙錛屽疄闄呬笂鐜板湪鍩轟簬XmlHttp鐨刟jax鎶鏈簲鐢ㄦ垚鐔熺殑璇?聽鍚庡彴楠岃瘉鎺ュ彛鐨勭敤閫斾細閫愭笎娣″寲銆?<br />聽<br /><font style="BACKGROUND-COLOR: #ffffff" color="#6666ff">聽璇存槑涓婅堪姣旇緝鐗堟湰涓?struts 1.0 /webwork 2.1.6錛屽悗緇璼truts妗嗘灦鎵╁睍寰堝鍔熻兘錛屼笉鏄緢浜嗚В錛屽彲鑳藉拰涓婅瘔鎻忚堪涓嶄竴瀹氬緢鍚誨悎銆?br /></font>聽<br />聽鐜板湪涓よ呭凡緇忓悎騫訛紝甯屾湜鑳界粨鍚堜袱鑰呯殑浼樺娍錛屽彂灞曞嚭鏇村ソweb妗嗘灦銆?br />聽<br />7銆佸叧浜嶩ibernate榪樻槸DAO妯″紡錛屼釜浜哄緩璁噰鐢╤ibernate+DAO鐩擱泦鍚堢殑妯″紡錛宧ibernate鍗犱富瀵煎湴浣嶃?br />聽铏界劧DAO妯″紡閫氳繃鑷姩鐢熸垚浠g爜鏁堢巼涓嶄細浣庯紝浣嗗鏋滈渶姹傚彉鏇村氨姣旇緝楹葷儲錛岀淮鎶や慨鏀逛唬鐮佽緝澶氾紝嫻嬭瘯宸ヤ綔閲忎篃杈冨ぇ錛屄犱絾Hibernate涓嶆槸涓囪兘鐨勶紝鍦ㄤ竴浜涘繀瑕佺殑搴旂敤榪樻槸閲囩敤DAO妯″紡錛岀壒鍒槸鎬ц兘鐩稿叧鐨勯儴鍒嗐?<br />聽<br />聽<br />聽搴熻瘽涓澶у爢錛屼篃綆楁妸鎴戠殑宸ヤ綔鍥為【浜嗕竴閬嶏紝鍛靛懙錛岃繖涓ゅぉ綆鍗曚簡瑙pring妗嗘灦錛屼釜浜烘劅瑙塖pring鏇村儚涓涓叏闈㈢殑J2EE妗嗘灦瑙e喅鏂規,聽甯屾湜鑳藉鏈夋椂闂寸郴緇熺殑瀛︿範涓鎶婏紝澶у鏈夊叴瓚g殑璇峰澶氫氦嫻?鎴戜細灝嗘垜鐨勫涔犲績寰楀拰澶у鍒嗕韓銆?br />聽<br />聽</p> <p> <br />聽<br />聽<br />聽<br />聽<br />聽<br />聽<br />聽<br />聽<br />聽<br />聽<br />聽<br />聽</p> <p> <br />聽</p> <img src ="http://www.tkk7.com/beauty_beast/aggbug/46421.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/beauty_beast/" target="_blank">鏌抽殢椋?/a> 2006-05-16 15:45 <a href="http://www.tkk7.com/beauty_beast/archive/2006/05/16/46421.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍩轟簬log4j瀹炵幇緇熶竴鏃ュ織綆$悊http://www.tkk7.com/beauty_beast/archive/2006/03/16/35681.html鏌抽殢椋?/dc:creator>鏌抽殢椋?/author>Thu, 16 Mar 2006 08:49:00 GMThttp://www.tkk7.com/beauty_beast/archive/2006/03/16/35681.htmlhttp://www.tkk7.com/beauty_beast/comments/35681.htmlhttp://www.tkk7.com/beauty_beast/archive/2006/03/16/35681.html#Feedback0http://www.tkk7.com/beauty_beast/comments/commentRss/35681.htmlhttp://www.tkk7.com/beauty_beast/services/trackbacks/35681.html鑳屾櫙錛?BR>       涓鑸搷浣滅郴緇熺駭鐨勫憡璀︽湁鐩稿叧鐨勮蔣浠訛紝浣嗘垜浠簲鐢ㄧ駭鏃ュ織寰寰鏃犳硶緇熶竴鐩戞帶銆佸垎鏋愩傚洜涓烘渶榪戠殑欏圭洰鏄瘮杈冨ぇ鐨勪竴涓鉤鍙幫紝鏈変竷銆佸叓涓瓙緋葷粺錛寃eblogic鍩熶篃鏈変笁銆佸洓涓傚鏋滅敤鎴瘋嚜韜兘澶熷疄鏃剁洃鎺у埌搴旂敤綰ц嚧鍛藉紓甯告棩蹇?濡侽utOfMemory,綰跨▼鎸傛銆佸簲鐢ㄦ帴鍙f棤娉曢摼鎺ョ瓑絳夈傞偅涔堟垜浠洃鎺х淮鎶や漢鍛樺伐浣滃氨澶уぇ綆鍖栵紝涓嶇劧瑕佹煡鐪嬫墍鏈夊煙鐨勬棩蹇椾俊鎭紝鍙渶闆嗕腑鐪嬩竴澶勶紝緋葷粺鏁呴殰涔熻兘澶熸洿蹇殑瑙e喅錛屾仮澶嶆甯搞?BR>       鐢ㄦ埛鐨勯渶姹傛槸瑕佹眰鎴戜滑灝嗘棩蹇楄緭鍑哄埌涓涓涓夋柟鍘傚鐨勬棩蹇桽erver銆?/P>

璁炬兂錛?BR>        weblogic platform鍩熺殑鏃ュ織杈撳嚭鏄彲閰嶇疆鐨勶紝鍦?bea/weblogic/common/lib/workshopLogCfg.xml, 鍘熷厛鐨勪竴涓」鐩墍鏈夌殑鏃ュ織杈撳嚭鍧囧湪姝ゆ枃浠朵腑閰嶇疆銆傚叾浠栦腑闂翠歡鏈漢寰堝皯浣跨敤錛岀浉淇′篃鏈夌被浼肩殑鍔熻兘錛宭og4j鏃ュ織妗嗘灦鏀寔緇熶竴鏃ュ織綆$悊鍔熻兘,綆鍗曞疄鐜板師鐞嗭紙鍚姩涓涓猄ocketServer,澶勭悊鍚勪釜瀹㈡埛绔満鍣ㄨ繛鎺ョ殑Socket杈撳叆錛?BR>鑰屾瘡涓簲鐢ㄦ墦鍗版棩蹇椾嬌鐢⊿ocket鏂瑰紡灝嗘棩蹇楀唴瀹硅緭鍑哄埌SocketServer绔級銆傚鏋滆兘灝嗛噸瑕佺殑鐨勪腑闂翠歡寮傚父鏃ュ織浠ュ強搴旂敤寮傚父鏃ュ織鍒扮粺涓鏃ュ織鏈嶅姟鍣紝瀹炴椂鍒嗘瀽錛岃繖鏍峰氨鏂逛究鏃ュ父鐩戞帶錛屾湁鐐圭被浼間簬璁懼鍛婅鐨勫姛鑳斤紝濡傛灉鍐嶅紑鍙戝嚭鐩稿叧鏃ュ織鍒嗘瀽杞歡錛屼釜浜鴻寰椾細鏄鉤鍙扮駭浜у搧鐨勪竴涓寒鐐癸紝姝e銆婂皯鏋楄凍鐞冦嬭鐨勬湁鐐規悶澶淬?/P>

瀹炶返錛?BR>    瀹炶返璇佹槑鐜板疄鍜岀悊鎯蟲誨綊鏈変竴瀹氱殑宸窛錛屽懙鍛點備笅闈㈡弿榪伴獙璇併佸涔犲績寰楋細
    棣栧厛鎻忚堪log4j鏄浣曞疄鐜扮粺涓鏃ュ織綆$悊璇ュ姛鑳界殑銆?BR>    鏍稿績綾伙細
    涓銆乷rg.apache.log4j.net.SocketServer 
    涓昏鍔熻兘錛?BR>                      1銆佸惎鍔⊿ocketServer
                      2銆佹帴鍙桽ocket璇鋒眰
                      3銆佸垵濮嬪寲瀵瑰簲Socket鐨勬棩蹇楄緭鍑洪厤緗紝濡傛病鏈夛紝灝遍噰鐢ㄩ氱敤閰嶇疆
                      4銆佸彟鍚嚎紼嬪鐞嗗鎴風Socket鍜屾湇鍔$浜や簰
    涓涓瘮杈冩爣鍑嗙殑澶氱嚎紼嬪鐞嗗疄鐜般?BR>     鍚姩Server闇瑕佹湁涓変釜榪愯鍙傛暟錛氱鍙e彿銆乴og4j閰嶇疆鏂囦歡銆佸鎴風鏃ュ織鍦⊿erver绔緭鍑洪厤緗枃浠剁洰褰?BR>     榪愯鍛戒護濡備笅錛?BR>                     java -classpath ../lib/log4j-1.2.8.jar;.; test.logserver.FixSocketServer   8088   server.properties  d:/temp
     璇存槑錛?BR>              a銆佸鎴風鏃ュ織鍦⊿erver绔緭鍑洪厤緗枃浠跺懡鍚嶈鍒?$ip.lcf ,    濡?10.21.11.10.lcf  
                        璇ョ被鍦ㄨВ鏋愯閰嶇疆鏂囦歡鐨勪唬鐮佷腑 搴旇瀛樺湪涓猙ug錛堢増鏈?.2.9)
                                           浠g爜176 琛?nbsp;  String key = s.substring(0,i);鏀逛負:   String key = s.substring(i+1);
              b銆侀厤緗枃浠跺唴瀹瑰拰涓鑸琹og4j閰嶇疆鍐呭闆峰悓錛宑ategories銆乤ppenders銆乴ayouts 
     浜屻乷rg.apache.log4j.net.SocketAppender
             璇ョ被緇ф壙浜嶢ppenderSkeleton錛屽鏋滄垜浠渶瑕佽嚜瀹氫箟Appender,鍙互緇ф壙AppenderSkeleton綾伙紝瀹炵幇鏂規硶錛?/P>

protected  void append(LoggingEvent event);

    涓昏鍔熻兘錛?nbsp;
                     1銆佽繛鎺ュ埌SocketServer,騫跺垱寤轟竴涓埌SocketServer鐨勫璞¤緭鍑哄疄渚?BR>                     2銆佸鏋滆繛鎺ュけ璐ワ紝浼氬惎鍔ㄤ竴涓畧鎶ょ嚎紼嬶紝姣忛殧涓夊崄縐掗挓閲嶆柊榪炴帴
                     3銆佹棩蹇楄緭鍑烘椂錛屽皢鏃ュ織浜嬩歡瀵硅薄杈撳嚭鍒癝ocketServer
     鐩稿搴旂殑鏃ュ織閰嶇疆錛?BR>        

log4j.appender.mysocket=test.logserver.SocketAppender 
log4j.appender.mysocket.RemoteHost
=10.243.17.85 
log4j.appender.mysocket.Port
=8088 
log4j.appender.mysocket.LocationInfo
=true 
log4j.appender.mysocket.layout
=org.apache.log4j.PatternLayout 
log4j.appender.myConsole.layout.ConversionPattern
=%5p [%t] (%F:%L) - %m%n


      涓夈乷rg.apache.log4j.net.SocketNode
              璇ョ被鐩稿綆鍗曪紝涓涓嚎紼嬬被
     涓昏鍔熻兘錛?BR>                     璐熻矗鎺ユ敹瀹㈡埛绔搴旇緭鍑哄璞★紝鏍規嵁瀵瑰簲鐨勯厤緗紝杈撳嚭鐩稿叧鏃ュ織銆?BR>
      鍙互鐪嬪嚭鏄氳繃瀵硅薄榪涜浼犺緭鐨勶紝濡傛灉絎笁鏂逛笉鏄噰鐢╦ava璇█鐨勶紝瀹為檯瑙e喅鏃跺彧闇鏀瑰啓SocketAppender鐨刟ppend鏂規硶錛岃緭鍑烘棩蹇楀唴瀹瑰氨鍙傚鏂瑰疄鐜癝ocketServer鍔熻兘灝卞彲錛堢紪紼嬭璦鍩烘湰閮芥敮鎸佽鍔熻兘錛夈?BR>
       閬楁喚鐨勬槸鍦╳eblogic 涓鑸瑂erver鍩熶腑鎴戞病鏈夋壘鍒板彲浠ユ敼鍙樻棩蹇楄緭鍑虹殑鍦版柟錛堜笂嬈$湅鍒皐eblogic9.0涓湁鏃ュ織鏈嶅姟錛屼笉鐭ラ亾鑳戒笉鑳芥敼鍙橈級錛屾墍浠ュ疄闄呭樊璺濊繕鏄瘮杈冨ぇ鐨勶紝鍏充簬鎬ц兘闂錛屽洜涓烘槸閲嶈鐨勬棩蹇?warning銆乪rror銆乫etal)鎵嶈緭鍑?閲囩敤socket鏂瑰紡闂搴旇涓嶅ぇ銆?BR>
綃囧璇濓細               
           鏌ョ湅浠g爜涓棤鎰忎腑鍙戠幇log4j妗嗘灦涓閮ㄥ垎婧愮爜閮芥槸涓浜涗漢鎹愮尞鐨勩傝櫧鐒朵唬鐮佷笉澶嶆潅錛屼絾鎰熻涓鴻嚜宸卞枩嬈㈢殑妗嗘灦寰堢儹蹇冿紝甯屾湜瀹冨彉鐨勮秺鏉ヨ秺濂斤紝鐪熺殑甯屾湜鎴戜滑鍥藉唴涔熻兘鏈変竴浜涗紭縐鐨勫紑婧愰」鐩紝騫朵笖澶у閮藉幓鏀寔瀹冿紝鍙戝睍瀹冦?BR>           瀹為檯鎴戝湪欏圭洰涓嬌鐢╨og4j浣跨敤鐨勯兘鏄竴浜涘熀鏈姛鑳斤紝瀵瑰畠鐨勮璁°佺粨鏋勪笉鏄緢娓呮錛岃皝鏈夌浉鍏沖涔犳枃妗o紝璇風粰鎴戜竴浠斤紝涓嶇敋鎰熸縺錛堜嬌鐢ㄦ墜鍐屽凡鏈夛級銆?BR>


   
                                           



]]>
主站蜘蛛池模板: 亚洲综合在线视频| 久久亚洲AV成人无码国产| 亚洲av无码专区青青草原| 成人免费毛片内射美女APP| 亚洲综合久久精品无码色欲| 免费无码精品黄AV电影| 亚洲熟妇AV乱码在线观看| 好吊妞在线新免费视频| 亚洲精品无码久久久久A片苍井空 亚洲精品无码久久久久YW | 免费无码又爽又刺激网站 | 午夜免费福利影院| 久久久久久亚洲av无码蜜芽| 啊v在线免费观看| caoporn成人免费公开| 亚洲阿v天堂在线| 美女视频黄的全免费视频网站| 亚洲中文无码mv| 亚洲午夜无码片在线观看影院猛| 成人精品视频99在线观看免费| 亚洲一二成人精品区| 91香蕉视频免费| 美女被免费视频网站a| 亚洲国产精华液网站w| 成人免费的性色视频| 精品一区二区三区免费毛片| 色久悠悠婷婷综合在线亚洲| 性xxxx视频免费播放直播| 日韩欧毛片免费视频| 免费人成网站永久| 亚洲综合精品一二三区在线| 免费高清资源黄网站在线观看| 一级免费黄色毛片| 亚洲校园春色小说| 国产免费看插插插视频| 99在线免费观看视频| 在线观看亚洲专区| 午夜亚洲国产理论秋霞| 国产小视频免费观看| 久久综合给合久久国产免费| 亚洲AV永久无码精品网站在线观看 | 亚洲一区二区免费视频|