﻿<?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-季浩的Blog-随笔分类-Struts2</title><link>http://www.blogjava.net/jht/category/24275.html</link><description>努力</description><language>zh-cn</language><lastBuildDate>Fri, 27 Jul 2007 02:49:15 GMT</lastBuildDate><pubDate>Fri, 27 Jul 2007 02:49:15 GMT</pubDate><ttl>60</ttl><item><title>No result defined for action ..... </title><link>http://www.blogjava.net/jht/archive/2007/07/26/132593.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Thu, 26 Jul 2007 09:29:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2007/07/26/132593.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/132593.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2007/07/26/132593.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/132593.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/132593.html</trackback:ping><description><![CDATA[<p>
		</p>这个问题出现发生的代码如下：<br /><br /><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 id="Codehighlighter1_42_381_Open_Image" onclick="this.style.display='none'; Codehighlighter1_42_381_Open_Text.style.display='none'; Codehighlighter1_42_381_Closed_Image.style.display='inline'; Codehighlighter1_42_381_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_42_381_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_42_381_Closed_Text.style.display='none'; Codehighlighter1_42_381_Open_Image.style.display='inline'; Codehighlighter1_42_381_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String execute() </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> Exception </span><span id="Codehighlighter1_42_381_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.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_42_381_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> String path = getText("struts.multipart.saveDir");</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_106_288_Open_Image" onclick="this.style.display='none'; Codehighlighter1_106_288_Open_Text.style.display='none'; Codehighlighter1_106_288_Closed_Image.style.display='inline'; Codehighlighter1_106_288_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_106_288_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_106_288_Closed_Text.style.display='none'; Codehighlighter1_106_288_Open_Image.style.display='inline'; Codehighlighter1_106_288_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_106_288_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.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_106_288_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> getMyDoc().length;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_170_284_Open_Image" onclick="this.style.display='none'; Codehighlighter1_170_284_Open_Text.style.display='none'; Codehighlighter1_170_284_Closed_Image.style.display='inline'; Codehighlighter1_170_284_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_170_284_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_170_284_Closed_Text.style.display='none'; Codehighlighter1_170_284_Open_Image.style.display='inline'; Codehighlighter1_170_284_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> j </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; j </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000"> i; j</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">) </span><span id="Codehighlighter1_170_284_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.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_170_284_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                File save </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> File(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">C:/upload/</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> getMyDocFileName()[j]);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                FileUtils.copyFile(getMyDoc()[j], save);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_310_345_Open_Image" onclick="this.style.display='none'; Codehighlighter1_310_345_Open_Text.style.display='none'; Codehighlighter1_310_345_Closed_Image.style.display='inline'; Codehighlighter1_310_345_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_310_345_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_310_345_Closed_Text.style.display='none'; Codehighlighter1_310_345_Open_Image.style.display='inline'; Codehighlighter1_310_345_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> (Exception e) </span><span id="Codehighlighter1_310_345_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.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_310_345_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ActionSupport.ERROR;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ActionSupport.SUCCESS;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span></span></div><p><br />这是用Struts2上传多个文件时候的一段代码，错误处理是遇到异常时return 一个ERROR，结果调用这个这个UploadAction报错 No result defined for action ..... <br /><br />应该修改成这样，捕获到异常时return ActionSupport.INPUT ，这样当页面第一次被载入时就不会报错了<br /><br /></p><img src ="http://www.blogjava.net/jht/aggbug/132593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2007-07-26 17:29 <a href="http://www.blogjava.net/jht/archive/2007/07/26/132593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]</title><link>http://www.blogjava.net/jht/archive/2007/07/19/131360.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Thu, 19 Jul 2007 13:57:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2007/07/19/131360.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/131360.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2007/07/19/131360.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/131360.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/131360.html</trackback:ping><description><![CDATA[这个问题是在使用Struts2想做一个上传文件的页面时候Tomcat报出来的错误，详细信息如下：<br /><font color="#660000">2007-7-19 21:34:09 org.apache.catalina.core.StandardWrapperValve invoke<br />严重: Servlet.service() for servlet jsp threw exception<br />java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]<br />    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:136)<br />    at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:476)<br />    at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:486)<br />    at com.opensymphony.xwork2.inject.ContainerImpl$9.call(ContainerImpl.java:517)<br />    at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:542)<br />    at com.opensymphony.xwork2.inject.ContainerImpl.getInstance(ContainerImpl.java:515)<br />    at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:697)<br />    at org.apache.struts2.dispatcher.FilterDispatcher.prepareDispatcherAndWrapRequest(FilterDispatcher.java:330)<br />    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:390)<br />    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)<br />    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)<br />    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)<br />    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)<br />    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)<br />    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)<br />    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)<br />    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)<br />    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)<br />    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)<br />    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)<br />    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)<br />    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)<br />    at java.lang.Thread.run(Thread.java:595)<br /><b>Caused by: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]</b><br />    at org.apache.struts2.config.BeanSelectionProvider$ObjectFactoryDelegateFactory.create(BeanSelectionProvider.java:246)<br />    at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:134)<br />    ... 22 more<br /><br />最后Google了不少文章，找到了原因：（缺少了必要的jar包）</font><br /><p>Struts2使用开源项目Apache Jakarta Commons FileUpload和内建的FileUploadInterceptor拦截器实现文件上传，所需的jar包如下：</p><p><font face="Arial">commons-logging-1.1.jar<br />
freemarker-2.3.8.jar<br />
ognl-2.6.11.jar<br />
struts2-core-2.0.6.jar<br />
xwork-2.0.1.jar<br />
commons-io-1.3.1.jar<br />
commons-fileupload-1.2.jar</font></p><font color="#660000"><br /></font>参考资料：<br /><br /><b><font size="3"><a id="viewpost1_TitleUrl" class="postTitle2" href="../../max/archive/2007/03/21/105124.html">在Struts 2中实现文件上传</a><br /></font></b><h2><b><font size="3"><a href="http://gemini.javaeye.com/blog/67712" title="永久链接：Struts2文件上传">
           Struts2文件上传</a></font></b></h2><br /><br /><img src ="http://www.blogjava.net/jht/aggbug/131360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2007-07-19 21:57 <a href="http://www.blogjava.net/jht/archive/2007/07/19/131360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>