﻿<?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-ice world-随笔分类-Strut1</title><link>http://www.blogjava.net/icewee/category/49010.html</link><description>There is nothing to difficult if you put your heart into it.</description><language>zh-cn</language><lastBuildDate>Tue, 19 Jul 2011 02:50:47 GMT</lastBuildDate><pubDate>Tue, 19 Jul 2011 02:50:47 GMT</pubDate><ttl>60</ttl><item><title>Struts1的FormFile上传文件用后感</title><link>http://www.blogjava.net/icewee/archive/2011/04/16/353209.html</link><dc:creator>IceWee</dc:creator><author>IceWee</author><pubDate>Sat, 16 Apr 2011 06:20:00 GMT</pubDate><guid>http://www.blogjava.net/icewee/archive/2011/04/16/353209.html</guid><wfw:comment>http://www.blogjava.net/icewee/comments/353209.html</wfw:comment><comments>http://www.blogjava.net/icewee/archive/2011/04/16/353209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/icewee/comments/commentRss/353209.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/icewee/services/trackbacks/353209.html</trackback:ping><description><![CDATA[<span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">项目中需要上传一些较大的文件，都是一些压缩备份文件，动不动就几百M。系统框架SSH，必然用Struts。而Struts提供了 FormFile类来上传文件。起初一切正常，上传下载的都没问题，但过了一段时间后客户提出大于300M的文件上传不上去。测试后发现果真如此，但是后台并不报错，直接返回下面的forward了。因为是初次使用，下面就是我一小天行走的过程。 </span>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">起初，我开始到处搜寻网上的上传文件下载，很多人用的都是apache得commons-fileupload.jar这个组件，而且代码都贴出了，我随便下了一个小demo，屡试不爽，别说300，500M也能传上去，而且也用了Struts，我开始犯晕。我试着将我的环境与demo得环境代码尽量相似，至少主要代码应该差不多。我将目前系统中的上传附件代码改成了demo中的：<span style="font-family: tahoma,arial,helvetica,sans-serif"></span></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">DiskFileUpload&nbsp;upload&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DiskFileUpload();<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />List&nbsp;uploadList&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;upload.parseRequest(request);</span></div>
<p><br /></span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">但是每次使用uploadList.size();时获取到得都是0，根本传布了。我更晕了。。。</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">我再次仔细的对比demo和系统，最后发现demo中没有使用Struts的FormBean，会不会是这里的问题？于是我将demo中也增加了 FormBean类，标签都用上了Struts的标签，这次果然demo也失效了。。。终于被我发现，都是FormBean的问题，但现在我又不可能舍弃 FormBean，因为不仅仅是附件，还有别的很重要的一些属性，代码都写好了，不可能大范围修改，那咋办？</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">为什么fileupload可以传那么大，而你struts却传不上大于300M的文件？再次搜索，终于发现原因，Struts在写 FormFile类时借助的是fileupload中的API，设置的默认大小为250M，难怪传不上去！如何设置更大一些或更小一些呢？这样：</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">在Struts配置文件的mapping标签后加上<span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 14px"><br /><br /></span></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">controller&nbsp;</span><span style="color: #ff0000">maxFileSize</span><span style="color: #0000ff">="1024M"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
<p><br /></span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">看到这个小标签页不用解释什么了吧！我设置了1G，现在传只要小于1G的附件都没问题了！</span></p><img src ="http://www.blogjava.net/icewee/aggbug/353209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/icewee/" target="_blank">IceWee</a> 2011-04-16 14:20 <a href="http://www.blogjava.net/icewee/archive/2011/04/16/353209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cannot retrieve mapping for action</title><link>http://www.blogjava.net/icewee/archive/2011/04/16/353241.html</link><dc:creator>IceWee</dc:creator><author>IceWee</author><pubDate>Fri, 15 Apr 2011 18:23:00 GMT</pubDate><guid>http://www.blogjava.net/icewee/archive/2011/04/16/353241.html</guid><wfw:comment>http://www.blogjava.net/icewee/comments/353241.html</wfw:comment><comments>http://www.blogjava.net/icewee/archive/2011/04/16/353241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/icewee/comments/commentRss/353241.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/icewee/services/trackbacks/353241.html</trackback:ping><description><![CDATA[<span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">想必用过Struts的朋友都遇到过这个异常吧！没遇到的也可能，只能说你很强或运气不错。</span> 
<div id="blog_text" class="cnt">
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">我遇到该异常的解释是我不强，用Struts不是很多，或者说根本不熟练，对一些知识了解得并不深，仅仅皮毛而已，所以这个异常困扰了我一天的时间。言归正传。</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">从字面上翻译就是&#8220;不能找到映射action&#8221;，当出现这个异常的时候，肯定是在请求某个action，而根据给定的路径却没找到，所以页面啪嚓抛出一个异常，满满一页。</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">此时你首先要检查的是请求的路径是否书写正确，与struts-config.xml中配置的路径仔细的核对，发现完全正确。真的完全吻合么？恐怕只有后面的&#8220;/XXAction&#8221;完全相同吧！所谓的完全正确是指由根目录到struts配置的path完全一致，如&#8220;<a href="http://localhost:8080/web/data/login.do"><span style="font-size: 12pt">http://localhost:8080/web/data/login.do</span></a></span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">&#8221;，你的struts配置文件中配置的可能是path="/data/login"，那么你如此访问肯定是正确的，只怕你忘记了data这个渺小的目录的存在，遗忘请补齐。这种情况的出现往往是做项目的时候，小组都分区分模块，每个人都有自己定义的目录，在web.xml中配置struts，如：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">strutsAction</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.apache.struts.action.ActionServlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">config/prms/data</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/prms/struts-config-data.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span></div>
<p></span>&nbsp;</p>
<div id="blog_text" class="cnt"></div>
<div class="cnt"><span style="font-family: Tahoma; font-size: 12pt">那么在你访问struts资源的时候千万不要忘记上面配置的路径</span><span style="font-family: Tahoma">。 </span></div>
<p><span style="font-family: Tahoma; font-size: 12pt">下面说说我遇到这个异常的原因吧！我直接访问服务器上的资源，即xx.jsp，如果路径写正确，这是没问题的，但是页面上却抛出了这个异常，仔细的检查发现，页面form的action写着&#8220;/login.do&#8221;，页面所在路径与&#8220;/login.do&#8221;组合后的路径并不是action配置的路径，所以根本就找不到action资源，只能抛出异常。</span></p>
<p><span style="font-family: Tahoma; font-size: 12pt">前辈们都建议不要直接访问服务器固定资源，如果你偏要访问那个jsp也行，使用Struts提供的ForwardAction即可，既不会出现上面的异常，又没有直接访问服务器资源，两全其美。</span></p></div><img src ="http://www.blogjava.net/icewee/aggbug/353241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/icewee/" target="_blank">IceWee</a> 2011-04-16 02:23 <a href="http://www.blogjava.net/icewee/archive/2011/04/16/353241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xx.jsp(xx,xx) According to TLD, tag bean:write must be empty, but is not</title><link>http://www.blogjava.net/icewee/archive/2011/04/16/353242.html</link><dc:creator>IceWee</dc:creator><author>IceWee</author><pubDate>Fri, 15 Apr 2011 18:20:00 GMT</pubDate><guid>http://www.blogjava.net/icewee/archive/2011/04/16/353242.html</guid><wfw:comment>http://www.blogjava.net/icewee/comments/353242.html</wfw:comment><comments>http://www.blogjava.net/icewee/archive/2011/04/16/353242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/icewee/comments/commentRss/353242.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/icewee/services/trackbacks/353242.html</trackback:ping><description><![CDATA[<span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">记得这个错误已经遇到第二次了，一打眼就知道怎么回事了，不过还是要记下，给自己长长记性。</span> 
<div id="blog_text" class="cnt">
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">原因是 使用了struts的标签没有闭合标签。</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">例：</span></p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">异常(错误)写法：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean:write&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="user"</span><span style="color: #ff0000">&nbsp;property</span><span style="color: #0000ff">="name"</span><span style="color: #0000ff">&gt;</span></div>
<p></span>&nbsp;</p>
<p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt">正确写法：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean:write&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="user"</span><span style="color: #ff0000">&nbsp;property</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
<p><br /></span></p></div><img src ="http://www.blogjava.net/icewee/aggbug/353242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/icewee/" target="_blank">IceWee</a> 2011-04-16 02:20 <a href="http://www.blogjava.net/icewee/archive/2011/04/16/353242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>