﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-坚持学习，每天进步一些-文章分类-Spring</title><link>http://www.blogjava.net/leitianguang/category/19470.html</link><description>第一天</description><language>zh-cn</language><lastBuildDate>Thu, 01 Mar 2007 15:37:11 GMT</lastBuildDate><pubDate>Thu, 01 Mar 2007 15:37:11 GMT</pubDate><ttl>60</ttl><item><title>webWork整合Spring例子</title><link>http://www.blogjava.net/leitianguang/articles/95791.html</link><dc:creator>坚持学习，每天进步一些</dc:creator><author>坚持学习，每天进步一些</author><pubDate>Wed, 24 Jan 2007 10:45:00 GMT</pubDate><guid>http://www.blogjava.net/leitianguang/articles/95791.html</guid><wfw:comment>http://www.blogjava.net/leitianguang/comments/95791.html</wfw:comment><comments>http://www.blogjava.net/leitianguang/articles/95791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leitianguang/comments/commentRss/95791.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leitianguang/services/trackbacks/95791.html</trackback:ping><description><![CDATA[
		<div class="code_title">代码</div>
		<div class="code_div">
				<div class="dp-highlighter">
						<div class="bar">
						</div>
						<ol class="dp-xml">
								<li class="alt">
										<span>
												<span class="tag">&lt;?</span>
												<span class="tag-name">xml</span>
												<span> </span>
												<span class="attribute">version</span>
												<span>=</span>
												<span class="attribute-value">"1.0"</span>
												<span> </span>
												<span class="attribute">encoding</span>
												<span>=</span>
												<span class="attribute-value">"ISO-8859-1"</span>
												<span class="tag">?&gt;</span>
												<span>  </span>
										</span>
								</li>
								<li class="">
										<span>&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>
										</span>
										<span class="tag">&lt;</span>
										<span class="tag-name">web-app</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">display-name</span>
										<span class="tag">&gt;</span>
										<span>WW</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">display-name</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="comments">&lt;!-- START SNIPPET: example --&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">filter</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">filter-name</span>
										<span class="tag">&gt;</span>
										<span>webwork</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">filter-name</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">filter-class</span>
										<span class="tag">&gt;</span>
										<span>com.opensymphony.webwork.dispatcher.FilterDispatcher</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">filter-class</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">filter</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">filter-mapping</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">filter-name</span>
										<span class="tag">&gt;</span>
										<span>webwork</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">filter-name</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">url-pattern</span>
										<span class="tag">&gt;</span>
										<span>/*</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">url-pattern</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">filter-mapping</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">listener</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">listener-class</span>
										<span class="tag">&gt;</span>
										<span>org.springframework.web.context.ContextLoaderListener</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">listener-class</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">listener</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>       </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">listener</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">listener-class</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>            com.atlassian.xwork.ext.ResolverSetupServletContextListener   </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">listener-class</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">listener</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>      </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet-name</span>
										<span class="tag">&gt;</span>
										<span>JspSupportServlet</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet-name</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet-class</span>
										<span class="tag">&gt;</span>
										<span>com.opensymphony.webwork.views.JspSupportServlet</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet-class</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">load-on-startup</span>
										<span class="tag">&gt;</span>
										<span>1</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">load-on-startup</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>    &lt;!--     </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet-name</span>
										<span class="tag">&gt;</span>
										<span>action</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet-name</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet-class</span>
										<span class="tag">&gt;</span>
										<span>com.opensymphony.webwork.dispatcher.ServletDispatcher</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet-class</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet-mapping</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">servlet-name</span>
										<span class="tag">&gt;</span>
										<span>action</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet-name</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">url-pattern</span>
										<span class="tag">&gt;</span>
										<span>*.do</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">url-pattern</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">servlet-mapping</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>      </span>
								</li>
								<li class="">
										<span>    --</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">welcome-file-list</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">welcome-file</span>
										<span class="tag">&gt;</span>
										<span>index.jsp</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">welcome-file</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">welcome-file</span>
										<span class="tag">&gt;</span>
										<span>default.jsp</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">welcome-file</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">welcome-file</span>
										<span class="tag">&gt;</span>
										<span>index.html</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">welcome-file</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">welcome-file-list</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="comments">&lt;!-- START SNIPPET: taglib --&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    &lt;!--   </span>
								</li>
								<li class="alt">
										<span>        This typically isn't required, as the taglib is included in webwork.jar.   </span>
								</li>
								<li class="">
										<span>        If you really need a taglib configuration within web.xml, copy webwork/src/java/META-INF/taglib.tld   </span>
								</li>
								<li class="alt">
										<span>        to the WEB-INF directory as webwork.tld.   </span>
								</li>
								<li class="">
										<span>     --</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>    </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">taglib</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">taglib-uri</span>
										<span class="tag">&gt;</span>
										<span>webwork</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">taglib-uri</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>        </span>
										<span class="tag">&lt;</span>
										<span class="tag-name">taglib-location</span>
										<span class="tag">&gt;</span>
										<span>/WEB-INF/lib/webwork-2.2.2.jar</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">taglib-location</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="">
										<span>    </span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">taglib</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
								<li class="alt">
										<span>       </span>
								</li>
								<li class="">
										<span>
										</span>
										<span class="tag">&lt;/</span>
										<span class="tag-name">web-app</span>
										<span class="tag">&gt;</span>
										<span>  </span>
								</li>
						</ol>
				</div>
		</div>
		<script><![CDATA[ender_code();]]&gt;</script>
		<br />直接从例子程序里面考出来的，applicationContext.xml <br /><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><div class="bar"></div><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span class="tag">?&gt;</span><span>  </span></span></li><li class=""><span>&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"</span><span class="tag">&gt;</span><span>  </span></li><li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">beans</span><span> </span><span class="attribute">default-autowire</span><span>=</span><span class="attribute-value">"autodetect"</span><span class="tag">&gt;</span><span>  </span></li><li class=""><span>    </span><span class="tag">&lt;</span><span class="tag-name">bean</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"helloBean"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"com.ww.test.HelloBean"</span><span> </span><span class="attribute">singleton</span><span>=</span><span class="attribute-value">"true"</span><span> </span><span class="tag">/&gt;</span><span>  </span></li><li class="alt"><span>    </span><span class="comments">&lt;!-- add your spring beans here --&gt;</span><span>  </span></li><li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">beans</span><span class="tag">&gt;</span><span>  </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><br />xworl.xml如下： <br /><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><div class="bar"></div><ol class="dp-xml"><li class="alt"><span><span>&lt;!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"</span><span class="tag">&gt;</span><span>  </span></span></li><li class=""><span>  </span></li><li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">xwork</span><span class="tag">&gt;</span><span>  </span></li><li class=""><span>    </span><span class="tag">&lt;</span><span class="tag-name">include</span><span> </span><span class="attribute">file</span><span>=</span><span class="attribute-value">"webwork-default.xml"</span><span class="tag">/&gt;</span><span>  </span></li><li class="alt"><span>  </span></li><li class=""><span>    </span><span class="tag">&lt;</span><span class="tag-name">package</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"default"</span><span> </span><span class="attribute">extends</span><span>=</span><span class="attribute-value">"webwork-default"</span><span>    </span></li><li class="alt"><span>                            </span><span class="attribute">externalReferenceResolver</span><span>=</span><span class="attribute-value">"com.opensymphony.xwork.spring.SpringExternalReferenceResolver"</span><span class="tag">&gt;</span><span>  </span></li><li class=""><span>        </span><span class="tag">&lt;</span><span class="tag-name">interceptors</span><span class="tag">&gt;</span><span>    </span></li><li class="alt"><span>             </span><span class="tag">&lt;</span><span class="tag-name">interceptor</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"reference-resolver"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"</span><span class="tag">/&gt;</span><span>    </span></li><li class=""><span>             </span><span class="tag">&lt;</span><span class="tag-name">interceptor-stack</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"myDefaultWebStack"</span><span class="tag">&gt;</span><span>    </span></li><li class="alt"><span>                  </span><span class="tag">&lt;</span><span class="tag-name">interceptor-ref</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"defaultStack"</span><span class="tag">/&gt;</span><span>    </span></li><li class=""><span>                  </span><span class="tag">&lt;</span><span class="tag-name">interceptor-ref</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"reference-resolver"</span><span class="tag">/&gt;</span><span>    </span></li><li class="alt"><span>             </span><span class="tag">&lt;/</span><span class="tag-name">interceptor-stack</span><span class="tag">&gt;</span><span>    </span></li><li class=""><span>        </span><span class="tag">&lt;/</span><span class="tag-name">interceptors</span><span class="tag">&gt;</span><span>    </span></li><li class="alt"><span>           </span></li><li class=""><span>        </span><span class="tag">&lt;</span><span class="tag-name">default-interceptor-ref</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"myDefaultWebStack"</span><span class="tag">/&gt;</span><span>  </span></li><li class="alt"><span>           </span></li><li class=""><span>        </span><span class="tag">&lt;</span><span class="tag-name">action</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"hello"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"com.ww.test.HelloAction"</span><span class="tag">&gt;</span><span>  </span></li><li class="alt"><span>            </span><span class="tag">&lt;</span><span class="tag-name">external-ref</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"helloBean"</span><span class="tag">&gt;</span><span>helloBean</span><span class="tag">&lt;/</span><span class="tag-name">external-ref</span><span class="tag">&gt;</span><span>  </span></li><li class=""><span>            </span><span class="tag">&lt;</span><span class="tag-name">result</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"success"</span><span class="tag">&gt;</span><span>/WEB-INF/pages/hello.jsp</span><span class="tag">&lt;/</span><span class="tag-name">result</span><span class="tag">&gt;</span><span>  </span></li><li class="alt"><span>        </span><span class="tag">&lt;/</span><span class="tag-name">action</span><span class="tag">&gt;</span><span>  </span></li><li class=""><span>    </span><span class="tag">&lt;/</span><span class="tag-name">package</span><span class="tag">&gt;</span><span>  </span></li><li class="alt"><span></span><span class="tag">&lt;/</span><span class="tag-name">xwork</span><span class="tag">&gt;</span><span>  </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><br />HelloAction： <br /><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><div class="bar"></div><ol class="dp-j"><li class="alt"><span><span class="keyword">import</span><span> com.opensymphony.xwork.ActionSupport;   </span></span></li><li class=""><span>  </span></li><li class="alt"><span></span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> HelloAction </span><span class="keyword">extends</span><span> ActionSupport {   </span></li><li class=""><span>       </span></li><li class="alt"><span>    </span><span class="keyword">private</span><span> String message;   </span></li><li class=""><span>    </span><span class="keyword">private</span><span> HelloBean helloBean;   </span></li><li class="alt"><span>       </span></li><li class=""><span>    </span><span class="annotation">@Override</span><span>  </span></li><li class="alt"><span>    </span><span class="keyword">public</span><span> String execute() </span><span class="keyword">throws</span><span> Exception {   </span></li><li class=""><span>        </span><span class="comment">// TODO Auto-generated method stub </span><span>  </span></li><li class="alt"><span>        message = helloBean.getMsg();   </span></li><li class=""><span>        </span><span class="keyword">return</span><span> SUCCESS;   </span></li><li class="alt"><span>    }   </span></li><li class=""><span>  </span></li><li class="alt"><span>    </span><span class="keyword">public</span><span> String getMessage() {   </span></li><li class=""><span>        </span><span class="keyword">return</span><span> message;   </span></li><li class="alt"><span>    }   </span></li><li class=""><span>  </span></li><li class="alt"><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> setHelloBean(HelloBean helloBean) {   </span></li><li class=""><span>        </span><span class="keyword">this</span><span>.helloBean = helloBean;   </span></li><li class="alt"><span>    }   </span></li><li class=""><span>  </span></li><li class="alt"><span>}   </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><br />HelloBean： <br /><div class="code_title">代码</div><div class="code_div"><div class="dp-highlighter"><div class="bar"></div><ol class="dp-j"><li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> HelloBean {   </span></span></li><li class=""><span>       </span></li><li class="alt"><span>    </span><span class="keyword">private</span><span> String msg = </span><span class="string">"HelloWorld"</span><span>;   </span></li><li class=""><span>  </span></li><li class="alt"><span>    </span><span class="keyword">public</span><span> String getMsg() {   </span></li><li class=""><span>        </span><span class="keyword">return</span><span> msg;   </span></li><li class="alt"><span>    }   </span></li><li class=""><span>  </span></li><li class="alt"><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> setMsg(String msg) {   </span></li><li class=""><span>        </span><span class="keyword">this</span><span>.msg = msg;   </span></li><li class="alt"><span>    }   </span></li><li class=""><span>       </span></li><li class="alt"><span>       </span></li><li class=""><span>  </span></li><li class="alt"><span>}  </span></li></ol></div></div><script><![CDATA[ender_code();]]&gt;</script><br /><img src ="http://www.blogjava.net/leitianguang/aggbug/95791.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leitianguang/" target="_blank">坚持学习，每天进步一些</a> 2007-01-24 18:45 <a href="http://www.blogjava.net/leitianguang/articles/95791.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webwork+spring最简单的集成 [转]</title><link>http://www.blogjava.net/leitianguang/articles/95790.html</link><dc:creator>坚持学习，每天进步一些</dc:creator><author>坚持学习，每天进步一些</author><pubDate>Wed, 24 Jan 2007 10:43:00 GMT</pubDate><guid>http://www.blogjava.net/leitianguang/articles/95790.html</guid><wfw:comment>http://www.blogjava.net/leitianguang/comments/95790.html</wfw:comment><comments>http://www.blogjava.net/leitianguang/articles/95790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/leitianguang/comments/commentRss/95790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/leitianguang/services/trackbacks/95790.html</trackback:ping><description><![CDATA[
		<p>xwork-option项目中，新增了一种更简单的实现WebWork和Spring集成的方案。它只要一个拦截器ActionAutowiringInterceptor就可以搞定！并且是自动为Action组装它所需的Spring容器中的Bean，也就是不用在每个Action中逐个配置所需的Bean。 <br />配置步骤： <br />1、在Web.xml文件中配置Spring Application Context: java代码:  <br />&lt;listener&gt; <br />  &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; <br />&lt;/listener&gt; </p>
		<p>2、在xwork.xml文件中定义ActionAutowiringInterceptor，并配置到相应的Action中： <br />java代码:  </p>
		<p>&lt;interceptor name="autowire" class="com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor"&gt; <br />    &lt;param name="autowireStrategy"&gt; <br />@org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE <br />    &lt;/param&gt; <br />  &lt;/interceptor&gt; </p>
		<p>可以自己设置Bean组装的策略，上面的定义是根据类型组装。如果不设置，默认情况是根据Bean的名称组装。 <br />详细参考：<a href="http://wiki.opensymphony.com/display/WW/WebWork+2+Spring+Integration">http://wiki.opensymphony.com/display/WW/WebWork+2+Spring+Integration</a><br />ActionAutowiringInterceptor主要代码如下： <br />java代码:  <br />protected void before(ActionInvocation invocation) throws Exception { <br />    if (!initialized) { <br />      ApplicationContext applicationContext = (ApplicationContext)ActionContext.getContext().getApplication().get( <br />          WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); </p>
		<p>      if (applicationContext == null) { <br />        log.warn("ApplicationContext could not be found.  Action classes will not be autowired."); <br />      } else { <br />        setApplicationContext(applicationContext); <br />        factory = new SpringObjectFactory(); <br />        factory.setApplicationContext(getApplicationContext()); <br />        if (autowireStrategy != null) { <br />          factory.setAutowireStrategy(autowireStrategy.intValue()); <br />        } <br />      } <br />      initialized = true; <br />    } <br />    <br />    if (factory == null) <br />      return; </p>
		<p>    Action bean = invocation.getAction(); <br />    factory.autoWireBean(bean); <br />    <br />    ActionContext.getContext().put(APPLICATION_CONTEXT, context); <br />  } <br /> <br /><br /><br /><a href="http://forum.javaeye.com/viewtopic.php?p=54959#54959"><font size="6">http://forum.javaeye.com/viewtopic.php?p=54959#54959</font></a><br /><br />webwork2 + spring 结合的几种方法的小结 </p>
		<p>参考: <br /><a href="http://wiki.opensymphony.com/display/WW/WebWork+2+Spring+Integration">http://wiki.opensymphony.com/display/WW/WebWork+2+Spring+Integration</a><br /><a href="http://forum.javaeye.com/viewtopic.php?t=8509">http://forum.javaeye.com/viewtopic.php?t=8509</a><br /><a href="http://forum.javaeye.com/viewtopic.php?t=9939">http://forum.javaeye.com/viewtopic.php?t=9939</a></p>
		<p>下载: <br /><a href="http://xwork-optional.dev.java.net/">http://xwork-optional.dev.java.net/</a></p>
		<p>
				<br />昨天使用webwork和spring,使用的是SpringObjectFactory方法,突然发现validator没发生作用,折腾半天, <br />换成external-ref的方法,可以了.但是觉得external-ref的方法太麻烦了. <br />就是去<a href="http://xwork-optional.dev.java.net/">http://xwork-optional.dev.java.net/</a>下载了一下最新的源码,换回SpringObjectFactory的方式,发现问题解决了(重载getClassInstance解决了这个问题). </p>
		<p>于是仔细研究了一下几种组合的方法,根据前面参考中的文章,整理了一下. </p>
		<p>看了xwork-optional的源码,发现其实三种方法的源码都包含在这里了,当然也包括external-ref这种方法的源码,只是换了包名和文件名,但是源码基本没变.你可以仔细看看. </p>
		<p>1.External-Ref </p>
		<p>这种方法看起来比较烦琐,可能现在都改用第3种方法了. </p>
		<p>第一步:在web.xml里面增加一个listener,如下 </p>
		<p>java代码:  </p>
		<p>                &lt;listener&gt; <br />                        &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; <br />                &lt;/listener&gt; <br />                <br />                &lt;listener&gt; <br />                        &lt;listener-class&gt;com.opensymphony.xwork.spring.SpringExternalReferenceResolverSetupListener&lt;/listener-class&gt; <br />                &lt;/listener&gt;<br /> </p>
		<p>
				<br />第二步:在Spring里面配置类似Dao之类的bean,例如 </p>
		<p>java代码:  </p>
		<p>                &lt;bean id="myDAO" class="com.ryandaigle.persistence.MyDAO" singleton="true" /&gt;<br /> </p>
		<p>
				<br />第三步:配置XWork.xml,例如 </p>
		<p>java代码:  </p>
		<p>                &lt;package name="default" extends="webwork-default" <br />                        externalReferenceResolver="com.opensymphony.xwork.spring.SpringExternalReferenceResolver"&gt;                <br />                        &lt;interceptors&gt; <br />                                &lt;interceptor name="reference-resolver" class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"/&gt; <br />                                &lt;interceptor-stack name="myDefaultWebStack"&gt; <br />                                        &lt;interceptor-ref name="defaultStack"/&gt; <br />                                        &lt;interceptor-ref name="reference-resolver"/&gt; <br />                                &lt;/interceptor-stack&gt; <br />                        &lt;/interceptors&gt; <br />                        <br />                        &lt;default-interceptor-ref name="myDefaultWebStack"/&gt; <br />                        <br />                        &lt;action name="myAction" class="com.ryandaigle.web.actions.MyAction"&gt; <br />                                &lt;external-ref name="DAO"&gt;myDAO&lt;/external-ref&gt; <br />                                &lt;result name="success" type="dispatcher"&gt; <br />                                        &lt;param name="location"&gt;/success.jsp&lt;/param&gt; <br />                                &lt;/result&gt; <br />                        &lt;/action&gt; <br />                <br />                &lt;/package&gt; <br />       <br />2.SpringObjectFactory <br />我一直用这种方法,因为以前觉得是xwork本身提供的方法,升级有保障. </p>
		<p>配置方法: <br />第一步.在spring的 applicationContext.xml (根据实际情况决定) 里面定义你的action,例如 </p>
		<p>java代码:  </p>
		<p>                &lt;bean name="some-action" class="fully.qualified.class.name" singleton="false"&gt; <br />                    &lt;property name="someProperty"&gt;&lt;ref bean="someOtherBean"/&gt;&lt;/property&gt; <br />                &lt;/bean&gt; <br />               <br /> 可以看到,可以使用Spring的特性来给你的action设置属性等,当然也可以使用Spring的拦截器等 (可以使用不一定等于推荐使用) </p>
		<p>注意一定是singleton="false",因为xwork的action是这样要求的. </p>
		<p>第二步.在xwork.xml里定义你的action定义 </p>
		<p>java代码:  </p>
		<p>                &lt;action name="myAction" class="some-action"&gt; <br />                    &lt;result name="success"&gt;view.jsp&lt;/result&gt; <br />                &lt;/action&gt; <br /> 第三步.要使上面的关联生效,还要用我们的SpringObjectFactory来替换Xwork的默认ObjectFactory. <br />最新的SpringObjectFactory里面,有两种方法,其中我觉得A方法更直观一些. </p>
		<p>A:修改web.xml </p>
		<p>java代码:  </p>
		<p>                            &lt;!-- 这个是spring的listener,可以改为你的自定义的spring的Listenter --&gt; <br />                        &lt;listener&gt; <br />                                &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; <br />                        &lt;/listener&gt; <br />                        <br />                <br />                        &lt;!-- 这个必须在 Spring ContextLoaderListener 的后面 --&gt; <br />                        &lt;listener&gt; <br />                          &lt;listener-class&gt;com.opensymphony.xwork.spring.SpringObjectFactoryListener&lt;/listener-class&gt; <br />                        &lt;/listener&gt;<br /> B.在spring的applicationContext.xml (根据实际情况决定)里面定义一个bean,例如 </p>
		<p>java代码:  </p>
		<p>                    &lt;bean id="spring-object-factory" class="com.opensymphony.xwork.spring.SpringObjectFactory" <br />                            init-method="initObjectFactory"/&gt;<br /> 这样Spring会自动调用initObjectFactory方法来替换Xwork的默认ObjectFactory </p>
		<p>3.ActionAutowiringInterceptor <br />这个方法是最近出现的,可能是最简洁的方法,但是不知道性能上有没有问题,我觉得jdk1.4以后应该没有任何问题吧,至于实际效果你的自己测试一下. </p>
		<p>第一步:配置web.xml <br />java代码:  </p>
		<p>                            &lt;!-- 这个是spring的listener,可以改为你的自定义的spring的Listenter --&gt; <br />                        &lt;listener&gt; <br />                                &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; <br />                        &lt;/listener&gt; <br />       <br /> 第二步配置xwork.xml里面的拦截器 </p>
		<p>java代码:  </p>
		<p>                &lt;interceptors&gt; <br />                  &lt;interceptor name="autowire" class="com.opensymphony.xwork.spring.interceptor.ActionAutowiringInterceptor"&gt; <br />                    &lt;param name="autowireStrategy"&gt;@org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE&lt;/param&gt; <br />                  &lt;/interceptor&gt; <br />                  &lt;interceptor-stack name="autowireDefault"&gt; <br />                    &lt;interceptor-ref="autowire" /&gt; <br />                    &lt;interceptor-ref="defaultStack" /&gt; <br />                  &lt;/interceptor-stack&gt; <br />                &lt;/interceptors&gt; </p>
		<p> 你的拦截器里都要包含autowire,例如这个autowireDefault就相当于以前的默认的拦截器了. <br />其中的拦截器策略可以配置,上面配置的是根据类型,如果不配置,默认是根据名字. </p>
		<p>一共有四种策略: <br />AUTOWIRE_CONSTRUCTOR <br />AUTOWIRE_BY_TYPE <br />AUTOWIRE_BY_NAME <br />AUTOWIRE_AUTODETECT </p>
		<p>这种方法执行原理就是查找你的action的所有字段,如果和Spring的定义bean有相同的,就自动设置. </p>
		<p>假设你的Spring的applicationContext.xml里面有这样一个定义: </p>
		<p>java代码:  </p>
		<p>            &lt;bean id="userManager" class="com.test.UserManager" /&gt; </p>
		<p> 如果你在xwork.xml 里面定义的某个action有一个字段叫userManager,那么在运行时刻就会自动被设置为Spring的配置文件里定义的Bean</p>
<img src ="http://www.blogjava.net/leitianguang/aggbug/95790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/leitianguang/" target="_blank">坚持学习，每天进步一些</a> 2007-01-24 18:43 <a href="http://www.blogjava.net/leitianguang/articles/95790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>