﻿<?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-Save Me From Myself-随笔分类-Struts2</title><link>http://www.blogjava.net/wawlian/category/46067.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 05 Sep 2010 22:36:31 GMT</lastBuildDate><pubDate>Sun, 05 Sep 2010 22:36:31 GMT</pubDate><ttl>60</ttl><item><title>Struts2中result配置中各种视图转发类型</title><link>http://www.blogjava.net/wawlian/archive/2010/09/04/331037.html</link><dc:creator>一个人跳舞</dc:creator><author>一个人跳舞</author><pubDate>Sat, 04 Sep 2010 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/wawlian/archive/2010/09/04/331037.html</guid><wfw:comment>http://www.blogjava.net/wawlian/comments/331037.html</wfw:comment><comments>http://www.blogjava.net/wawlian/archive/2010/09/04/331037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wawlian/comments/commentRss/331037.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wawlian/services/trackbacks/331037.html</trackback:ping><description><![CDATA[<span style="font-family: Lucida Console;"><span style="font-family: Lucida Console;">struts2</span>中result常见的几种转发类型：dispatcher(默认)即内部请求转发，redirect重定向，redirectAction，plainText。<br />
下面分别介绍以下几种方式。<br />
<br />
1.dispatcher方式：<br />
&nbsp;&nbsp; 这种方式是struts2中默认的转发类型，即内部请求转发，类似于forward的方式。这里不专门介绍。<br />
<br />
2.redirect方式：<br />
&nbsp;&nbsp; 首先看一下以下的配置代码片段：<br />
</span>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;"><span style="font-family: Lucida Console;"><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">action&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="redirect"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="redirect"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/add.jsp</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">action</span><span style="color: #0000ff;">&gt;</span></span></span></div>
<span style="font-family: Lucida Console;">&nbsp;&nbsp; 这时候，用户在浏览器中访问该action，例如，我们输入URL：http://localhost:8080/hello/redirect.action，当用户开始访问，我们会看到，浏览器的url地址变成：http://localhost:8080/hello/add.jsp。这说明，配置的确实是浏览器重定向的方式。<br />
<br />
3.redirectAction方式：<br />
&nbsp;&nbsp; 这种方式可以简单的理解成转向到另一个Action。这种配置往往在下面的情况下需要用到：例如，当管理员添加完一个用户后，系统自动跳转到用户列表的界面。那么我们进行如下配置：<br />
</span>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;"><span style="font-family: Lucida Console;"><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">action&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="redirectAction"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="redirectAction"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">listAction</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">action</span><span style="color: #0000ff;">&gt;</span></span></span></div>
&nbsp;&nbsp;&nbsp; 而其中的listAction是用来控制显示所有用户的action。并且，该action必须和redirectAction处在同一个package下面。那么如果不在同一个包下，则需进行如下配置：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;"><span style="font-family: Lucida Console;"><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="redirectAction"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="actionName"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">XXX</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="namespace"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">YYY</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span></span></span></div>
&nbsp;&nbsp;&nbsp; 其中XXX代表你要转向到的Action的名称，YYY代表该Action所在package对应的名称空间。<br />
<br />
<span style="font-family: Lucida Console;">4.plainText方式</span><br />
&nbsp;&nbsp;&nbsp; 这种方式一般来说使用的比较少，可能用到的情况：原样输出源代码。配置如下：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;"><span style="font-family: Lucida Console;"><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">action&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="abc"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">result&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="plainText"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="location"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/index.jsp</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="charSet"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">UTF-8</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">result</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">6</span>&nbsp;<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">action</span><span style="color: #0000ff;">&gt;</span></span></span></div>
&nbsp;&nbsp; 这时，index.jsp的源代码则会以文本方式显示在浏览器中。<br />
<br />
<span style="font-family: Lucida Console;"><br />
</span>
<img src ="http://www.blogjava.net/wawlian/aggbug/331037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wawlian/" target="_blank">一个人跳舞</a> 2010-09-04 14:21 <a href="http://www.blogjava.net/wawlian/archive/2010/09/04/331037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Action中各项配置的默认值</title><link>http://www.blogjava.net/wawlian/archive/2010/08/27/330091.html</link><dc:creator>一个人跳舞</dc:creator><author>一个人跳舞</author><pubDate>Fri, 27 Aug 2010 13:20:00 GMT</pubDate><guid>http://www.blogjava.net/wawlian/archive/2010/08/27/330091.html</guid><wfw:comment>http://www.blogjava.net/wawlian/comments/330091.html</wfw:comment><comments>http://www.blogjava.net/wawlian/archive/2010/08/27/330091.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wawlian/comments/commentRss/330091.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wawlian/services/trackbacks/330091.html</trackback:ping><description><![CDATA[配置一个Action：<br />
<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"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">package&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="hello"</span><span style="color: #ff0000">&nbsp;namespace</span><span style="color: #0000ff">="/action"</span><span style="color: #ff0000">&nbsp;extends</span><span style="color: #0000ff">="struts-default"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">action&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="helloworld"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">&lt;</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/page/hello.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">package</span><span style="color: #0000ff">&gt;</span></div>
Action的代码如下：<br />
<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"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_30_178_Open_Image" onclick="this.style.display='none'; Codehighlighter1_30_178_Open_Text.style.display='none'; Codehighlighter1_30_178_Closed_Image.style.display='inline'; Codehighlighter1_30_178_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_30_178_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_30_178_Closed_Text.style.display='none'; Codehighlighter1_30_178_Open_Image.style.display='inline'; Codehighlighter1_30_178_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HelloWorldAction&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_30_178_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_30_178_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;msg;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_83_100_Open_Image" onclick="this.style.display='none'; Codehighlighter1_83_100_Open_Text.style.display='none'; Codehighlighter1_83_100_Closed_Image.style.display='inline'; Codehighlighter1_83_100_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_83_100_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_83_100_Closed_Text.style.display='none'; Codehighlighter1_83_100_Open_Image.style.display='inline'; Codehighlighter1_83_100_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getMessage()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_83_100_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_83_100_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;msg;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img id="Codehighlighter1_127_176_Open_Image" onclick="this.style.display='none'; Codehighlighter1_127_176_Open_Text.style.display='none'; Codehighlighter1_127_176_Closed_Image.style.display='inline'; Codehighlighter1_127_176_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_127_176_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_127_176_Closed_Text.style.display='none'; Codehighlighter1_127_176_Open_Image.style.display='inline'; Codehighlighter1_127_176_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;execute()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_127_176_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_127_176_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">我的第一个struts2应用</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
访问以下路径：<a href="http://localhost:8080/struts2/action/helloworld">http://localhost:8080/struts2/action/helloworld</a>依然可以访问到jsp中的内容。这主要是因为Action中有很多默认配置：<br />
1.如果没有为action配置class属性，那么其默认值为ActionSupport。<br />
2.如果没有为action配置method属性，那么默认为execute<br />
3.ActionSupport类中有一个execute()方法，它返回一个常量SUCCESS，而该常量的值为"success"。<br />
4.如果没有为result设置name属性，默认为success。<br />
知道以上内容，则不难理解为什么即使省略了很多属性的配置，依然能够访问到该Action了。
<img src ="http://www.blogjava.net/wawlian/aggbug/330091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wawlian/" target="_blank">一个人跳舞</a> 2010-08-27 21:20 <a href="http://www.blogjava.net/wawlian/archive/2010/08/27/330091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2对Action名称的搜索顺序</title><link>http://www.blogjava.net/wawlian/archive/2010/08/27/330090.html</link><dc:creator>一个人跳舞</dc:creator><author>一个人跳舞</author><pubDate>Fri, 27 Aug 2010 13:02:00 GMT</pubDate><guid>http://www.blogjava.net/wawlian/archive/2010/08/27/330090.html</guid><wfw:comment>http://www.blogjava.net/wawlian/comments/330090.html</wfw:comment><comments>http://www.blogjava.net/wawlian/archive/2010/08/27/330090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wawlian/comments/commentRss/330090.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wawlian/services/trackbacks/330090.html</trackback:ping><description><![CDATA[新建一个struts2项目，命名为struts2。按照如下XML文件配置一个Action：<br />
<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"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">package&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="hello"</span><span style="color: #ff0000">&nbsp;namespace</span><span style="color: #0000ff">="/action"</span><span style="color: #ff0000">&nbsp;extends</span><span style="color: #0000ff">="struts-default"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><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">action&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="helloworld"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="com.xiaobai.struts.action.HelloWorldAction"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="execute"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><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">result&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="success"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/page/hello.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><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">action</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">package</span><span style="color: #0000ff">&gt;</span></div>
将应用部署，访问如下路径：<a href="http://localhost:8080/struts2/action/sdf/dsf/32/d/helloworld">http://localhost:8080/struts2/action/sdf/dsf/32/d/helloworld</a> 依然可以访问到Action。<br />
这主要是因为Struts2对Action名称的搜索是按照一定顺序进行的。以上面的情况为例：<br />
1.struts2首先搜索命名空间为/action/sdf/dsf/32/d的包是否存在，存在的情况下，是否有helloworld这个Action；<br />
2.搜索命名空间为/action/sdf/dsf/32的包是否存在，存在的情况下，是否有helloworld这个Action；<br />
3.搜索命名空间为/action/sdf/dsf的包是否存在，存在的情况下，是否有helloworld这个Action；<br />
4.搜索命名空间为/action/sdf的包是否存在，存在的情况下，是否有helloworld这个Action；<br />
5.搜索命名空间为/action的包是否存在。在这种情况下能够搜索到，因此，可以访问到helloworld这个Action。<br />
此外，如果按照这种搜索顺序搜索，发现所有的包均不存在，那么struts2则会到命名空间为""（默认命名空间）的包下面去找helloworld这个Action。
<img src ="http://www.blogjava.net/wawlian/aggbug/330090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wawlian/" target="_blank">一个人跳舞</a> 2010-08-27 21:02 <a href="http://www.blogjava.net/wawlian/archive/2010/08/27/330090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2的第一个应用(hello world)（根据传智播客相关视频整理）</title><link>http://www.blogjava.net/wawlian/archive/2010/08/26/330009.html</link><dc:creator>一个人跳舞</dc:creator><author>一个人跳舞</author><pubDate>Thu, 26 Aug 2010 13:16:00 GMT</pubDate><guid>http://www.blogjava.net/wawlian/archive/2010/08/26/330009.html</guid><wfw:comment>http://www.blogjava.net/wawlian/comments/330009.html</wfw:comment><comments>http://www.blogjava.net/wawlian/archive/2010/08/26/330009.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wawlian/comments/commentRss/330009.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wawlian/services/trackbacks/330009.html</trackback:ping><description><![CDATA[<p>1.新建一个web项目，取名为struts2.<br />
2.加入struts2的相关jar文件，将struts.xml文件拷贝进src目录下。将修改过的web.xml文件拷贝至struts2/WebRoot/WEB-INF/下。<br />
3.新建一个Action：HelloWorldAction。其代码如下：</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"><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.xiaobai.struts.action;<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img id="Codehighlighter1_66_214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_66_214_Open_Text.style.display='none'; Codehighlighter1_66_214_Closed_Image.style.display='inline'; Codehighlighter1_66_214_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_66_214_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_66_214_Closed_Text.style.display='none'; Codehighlighter1_66_214_Open_Image.style.display='inline'; Codehighlighter1_66_214_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HelloWorldAction&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_66_214_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_66_214_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;msg;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_119_136_Open_Image" onclick="this.style.display='none'; Codehighlighter1_119_136_Open_Text.style.display='none'; Codehighlighter1_119_136_Closed_Image.style.display='inline'; Codehighlighter1_119_136_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_119_136_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_119_136_Closed_Text.style.display='none'; Codehighlighter1_119_136_Open_Image.style.display='inline'; Codehighlighter1_119_136_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getMessage()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_119_136_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_119_136_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;msg;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img id="Codehighlighter1_163_212_Open_Image" onclick="this.style.display='none'; Codehighlighter1_163_212_Open_Text.style.display='none'; Codehighlighter1_163_212_Closed_Image.style.display='inline'; Codehighlighter1_163_212_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_163_212_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_163_212_Closed_Text.style.display='none'; Codehighlighter1_163_212_Open_Image.style.display='inline'; Codehighlighter1_163_212_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;execute()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_163_212_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_163_212_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">我的第一个struts2应用</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
4.修改strut.xml文件：在&lt;struts&gt;&lt;/struts&gt;标签对中加入以下配置：<br />
<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"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">package&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="hello"</span><span style="color: #ff0000">&nbsp;namespace</span><span style="color: #0000ff">="/action"</span><span style="color: #ff0000">&nbsp;extends</span><span style="color: #0000ff">="struts-default"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><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">action&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="helloworld"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="com.xiaobai.struts.action.HelloWorldAction"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="execute"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span><span style="color: #000000"><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">result&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="success"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/page/hello.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">result</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><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">action</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">package</span><span style="color: #0000ff">&gt;</span></div>
<br />
5.部署该项目。并且启动Tomcat服务器，访问<a href="http://localhost:8080/struts2/action/helloworld">http://localhost:8080/struts2/action/helloworld</a> <br />
看到如下图所示的结果：<br />
<img style="width: 206px; height: 71px" border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/wawlian/struts2.jpg" width="206" height="71" /><br />
<br />
下面对写的代码及配置做一点解释：<br />
1.&lt;package&gt;标签的namespace属性可以作为action访问路径的一部分。不设置该属性或将其设置为""（空字符串）则为默认命名空间。例如上面的package属性设置为"/action"，action标签的name属性设置为"helloworld"，所以访问该action的路径应为/action/helloworld，这也就是上面这个应用的访问地址是<a href="http://localhost:8080/struts2/action/helloworld">http://localhost:8080/struts2/action/helloworld</a>的原因。<br />
2.一般情况下，package都应当继承自struts-default包，即，将package的extends属性设置为"struts-default"，这样才能获得struts2的许多功能。<br />
3.action的method属性主要是定义将请求交给action中的哪个方法来处理。<br />
4.result标签中的name属性值对应action中的处理方法(这里是execute方法)的返回值，用来定义在该返回值的情况下如何进行转向。<br />
&nbsp;&nbsp; 上面的应用中的jsp文件放置在WEB-INF文件下，主要是为了不让用户直接访问到jsp页面，而是通过访问action，并通过action的控制来访问信息。<br />
&nbsp;&nbsp; (ps：用户直接访问jsp文件也无法获得msg的值)<br />
<img src ="http://www.blogjava.net/wawlian/aggbug/330009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wawlian/" target="_blank">一个人跳舞</a> 2010-08-26 21:16 <a href="http://www.blogjava.net/wawlian/archive/2010/08/26/330009.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2开发环境搭建</title><link>http://www.blogjava.net/wawlian/archive/2010/08/26/329959.html</link><dc:creator>一个人跳舞</dc:creator><author>一个人跳舞</author><pubDate>Thu, 26 Aug 2010 05:04:00 GMT</pubDate><guid>http://www.blogjava.net/wawlian/archive/2010/08/26/329959.html</guid><wfw:comment>http://www.blogjava.net/wawlian/comments/329959.html</wfw:comment><comments>http://www.blogjava.net/wawlian/archive/2010/08/26/329959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wawlian/comments/commentRss/329959.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wawlian/services/trackbacks/329959.html</trackback:ping><description><![CDATA[<p><span style="font-family: Comic Sans MS"><span style="font-family: Courier">struts2开发环境的搭建主要涉及以下三个步骤：<br />
1.找到开发struts2应用需要的jar文件。<br />
2.编写struts2的配置文件。<br />
3.修改web.xml文件。<br />
具体步骤如下：<br />
1.到<a href="http://struts.apache.org/">http://struts.apache.org/</a>下载struts。下载完成之后将下载的zip文件解压。<br />
2.在MyEclipse中创建一个web项目，给项目命名，例如，struts2.<br />
3.进入struts解压目录下的lib目录中，找到以下jar文件(版本号可能不同)：<br />
&nbsp;&nbsp;struts2-core-2.x.x.jar<br />
&nbsp;&nbsp;xwork-2.x.x.jar<br />
&nbsp; ognl-2.6.x.jar<br />
&nbsp; freemarker-2.3.x.jar<br />
&nbsp; commons-logging-1.1.x.jar<br />
&nbsp; commons-fileupload-1.2.x.jar<br />
&nbsp; 将这些jar文件拷贝至新建的web项目的WEB-INF/lib目录下。这些jar文件时开发struts2应用需要的最少的jar文件集合。<br />
4.在项目的src目录下新建或者从别处拷贝一个struts.xml。该文件是struts2的配置文件。该文件可以通过以下方式获得：<br />
&nbsp; 在struts的解压目录下的apps目录下有一些struts2的示例应用。例如，struts2-blank-2.1.8.1.war。用WinRAR将其解压缩，在解压目录<br />
&nbsp; 下的WEB-INF/classes目录下，找到struts.xml，将其复制到项目的src目录下，打开该文件，将&lt;struts&gt;&lt;/struts&gt;标签对中的其他内容<br />
&nbsp; 删除。<br />
5.修改web.xml文件。进入解压的struts示例应用，将WEB-INF目录下的web.xml文件拷贝替换项目中的web.xml文件即可。<br />
&nbsp; 或者也可以在项目中的struts.xml文件中添加一个Filter的配置：<br />
</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"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">struts2</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">struts2</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/*</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span></div>
<p>这样，struts2的开发环境就搭建好了。<br />
（以上内容根据传智播客的相关视频整理，主要是方便自己以后查看）</span></span></p>
 <img src ="http://www.blogjava.net/wawlian/aggbug/329959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wawlian/" target="_blank">一个人跳舞</a> 2010-08-26 13:04 <a href="http://www.blogjava.net/wawlian/archive/2010/08/26/329959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>