﻿<?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-风人园-随笔分类-Struts2</title><link>http://www.blogjava.net/wuxufeng8080/category/18789.html</link><description>弱水三千，只取一瓢，便能解渴；佛法无边，奉行一法，便能得益。</description><language>zh-cn</language><lastBuildDate>Tue, 24 Nov 2009 08:47:57 GMT</lastBuildDate><pubDate>Tue, 24 Nov 2009 08:47:57 GMT</pubDate><ttl>60</ttl><item><title>struts2 表单属性映射的问题</title><link>http://www.blogjava.net/wuxufeng8080/archive/2009/08/04/289788.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Tue, 04 Aug 2009 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2009/08/04/289788.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/289788.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2009/08/04/289788.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/289788.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/289788.html</trackback:ping><description><![CDATA[最近使用的过程中，有点搞不懂，表单域跟属性到底是怎么个关系，因为有时候可以，有时候又不行。有点小郁闷。<br />
<br />
使用新东西的时候或多或少会出现这样那样的问题，这导致很多人不愿意更换原来的框架，一换又要学一个大堆东西，处理一大堆异常。但是我们这些做开发的，不学习使用新的 东西，就会被淘汰。这个行业的悲哀啊，当初也不知道怎么选择了这个行业。<br />
<br />
以上是题外话。<br />
<br />
表单映射，在2里面有两种方式，一个事modelDriver，直接映射到model里面。<br />
另一种方式就是通过属性来影射，通过getter和setter方法来获取和设置值。<br />
<br />
现在出现问题的在第二种情况，设值后，传到页面，页面没有得到值，这个不知道什么缘故，感觉有可能是页面转发的问题。这个还要好好看看资料研究一下。<br />
<br />
：） <br />
<br />
//==========================================================================<br />
2009-11-17<br />
好久以前的问题了，今天终于有了答案，原来都是ValueStack惹的。其实也怪自己，一直没有空把struts2的原理好好的看看，还以为跟以前的东西一样呢。<br />
<br />
问题是这样的，在action里定义了属性之后，数据都是存在ValueStack里面的。如果你直接使用tag取的话就没有问题。但是你想通过java代码，用request取的话，这样是取不出来的。<br />
<br />
今天终于发现了这个问题的原因。<br />
这些属性可以通过request取，但是首先要去的ValueStack，然后从ValueStack里面把这个值取出来。<br />
如：<br />
ValueStack vs = request.getAttribute(struts.valueStack);<br />
然后根据属性名称，从vs中获取这个对象值。<br />
vs.find("value");<br />
<br />
这样就可以把数据取出来通过java代码来操作了。否则只能使用struts2自带的tag来运行。<br />
<br />
这个是今天的一大收获。
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/289788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2009-08-04 15:52 <a href="http://www.blogjava.net/wuxufeng8080/archive/2009/08/04/289788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2 -- Action Configuration (翻译)</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/07/06/128496.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Fri, 06 Jul 2007 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/07/06/128496.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/128496.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/07/06/128496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/128496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/128496.html</trackback:ping><description><![CDATA[<strong style="FONT-SIZE: 18pt">Action Mappings</strong><br>&nbsp;&nbsp;&nbsp;Action映射可以指定一组result类型，一组异常处理，一个拦截器堆。但是只有name属性是必须的。其他的属性都可以通过package范围提供。<br>一个登录action<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 src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">action&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="Logon"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="tutorial.Logon"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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-action"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Menu</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">result</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">="input"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/tutorial/Logon.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><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">action</span><span style="COLOR: #0000ff">&gt;</span></div>
<strong style="FONT-SIZE: 18pt">Action Names</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在web应用中，name属性是用以匹配浏览器请求路径的一部分（或其他HTTP客户端）。framework会丢掉主机名、应用名和扩展名，并匹配中间部分。所以，一个<tt><span class=nobr><a title="Visit page outside Confluence" href="http://www.planetstruts.org/struts2-mailreader/Welcome.do" rel=nofollow>http://www.planetstruts.org/struts2-mailreader/Welcome.do<sup><img class=rendericon height=7 alt="" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" width=7 align=absMiddle border=0></sup></a></span></tt> 会map到 <tt>Welcome</tt> action。<br>
<p>在应用中，这个到action的链接一般是由struts tag来自动产生的。这个tag通过名字来指定action，并且这个framework会加上默认扩展名和其他一些必须 的东西。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">s:form&nbsp;</span><span style="COLOR: #ff0000">action</span><span style="COLOR: #0000ff">="Hello"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">s:textfield&nbsp;</span><span style="COLOR: #ff0000">label</span><span style="COLOR: #0000ff">="Please&nbsp;enter&nbsp;your&nbsp;name"</span><span style="COLOR: #ff0000">&nbsp;name</span><span style="COLOR: #0000ff">="name"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">s:submit</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">s:form</span><span style="COLOR: #0000ff">&gt;</span></div>
<strong style="FONT-SIZE: 18pt">Wildcard Method</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多数情况，一组action mapping会有一个共享模式。比如，你所有的 edit actions都一个&#8220;edit&#8221;打头， 并调用这个action 类的edit方法。delete actions也是这个模式，但是调用的是delete方法。<br>
<p>这种情况，你就可以通过通配符的方式来定义一次action mapping，远胜于定义每一个action mapping.</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">action&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="*Crud"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="example.Crud"</span><span style="COLOR: #ff0000">&nbsp;method</span><span style="COLOR: #0000ff">="{1}"</span><span style="COLOR: #0000ff">&gt;</span></div>
<p>这里，一个"editCrud"的action会调用Crud Action类实例的edit方法。同样，一个"deleteCrud"的action会调用delete方法。<br>另一种常用的方法就是后缀方法名，通过设置"!", "_", 或者其他一些特殊字符。<br></p>
<ul>
    <li>"action=Crud_input"
    <li>"action=Crud_delete" </li>
</ul>
<p>To use a postfix wildcard, just move the asterisk and add an underscore.<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">action&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="Crud_*"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="example.Crud"</span><span style="COLOR: #ff0000">&nbsp;method</span><span style="COLOR: #0000ff">="{1}"</span><span style="COLOR: #0000ff">&gt;</span></div>
<br>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/128496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-07-06 09:51 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/07/06/128496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2--Result Configuration</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/06/27/126530.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Wed, 27 Jun 2007 03:29:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/06/27/126530.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/126530.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/06/27/126530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/126530.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/126530.html</trackback:ping><description><![CDATA[<p>&#160;</p>
<p>当Action类方法完成，会返回一个字符串，这个字符串值用来选择result元素。一个action可以映射到一组不同描述的结果。标准的result是在ActionSupport 这个基类中定义的。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">String&nbsp;SUCCESS&nbsp;</span><span style="COLOR: #000000">=</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><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>String&nbsp;NONE&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">none</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>String&nbsp;ERROR&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">error</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>String&nbsp;INPUT&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">input</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>String&nbsp;LOGIN&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">login</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;</span></div>
<p>当然，ap可以自定义其他的result标记来match特定的情况。</p>
<p><strong style="FONT-SIZE: 18pt">Result Elements</strong><br>result有默认值设定，如果不指定属性，则使用success和dispatch来执行这个result</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">action&nbsp;</span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="Hello"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">/hello/Result.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><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">="error"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/hello/Error.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><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">="input"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/hello/Input.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><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">action</span><span style="COLOR: #0000ff">&gt;</span></div>
<p><br>如上显示，默认情况下，如果返回值是success，则执行第一个result，其他的情况执行下面的匹配的result</p>
<p><strong style="FONT-SIZE: 18pt">Global Results</strong></p>
<p>大部分时候，results都是嵌套在antion元素中。但是很多results会应用到不同的action。在一个安全的应用中，一个client试图访问一个没有认证的页面，那么很多action可能都需要去访问 logon result。<br>如果action需要共享result， 一组global result可以为每一个package定义。框架首先查询嵌套在action中的本地result，如果本地result没有符合的，则在global result中查询。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">global-results</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">="error"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/Error.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><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">="invalid.token"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">/Error.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><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">="login"</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">="redirect-action"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Logon!input</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">result</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">global-results</span><span style="COLOR: #0000ff">&gt;</span></div>
<p>&nbsp;</p>
<p><strong style="FONT-SIZE: 18pt">Dynamic Results</strong><br>A result may not be known until execution time. Consider the implementation of a state-machine-based execution flow; the next state might depend on any combination of form input elements, session attributes, user roles, moon phase, etc. In other words, determining the next action, input page, etc. may not be known at configuration time.</p>
<p>Result values may be retrieved from its corresponding Action implementation by using EL expressions that access the Action's properties, just like the Struts 2 tag libraries. So given the following Action fragment:<br>一个action有时候不可能在执行前就知道它的action，这种情况就需要通过动态result来实现。</p>
<p>&nbsp;首先定义一个属性，来存放这个值，然后在流程定义中通过EL表达式来取得这个属性值。这样就可以通过程序动态指定需要转发的值。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;String&nbsp;nextAction;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #0000ff">&nbsp;&nbsp;&nbsp;public</span><span style="COLOR: #000000">&nbsp;String&nbsp;getNextAction()&nbsp;</span><span id=Codehighlighter1_58_83_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"></span><span id=Codehighlighter1_58_83_Open_Text><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;nextAction;<br>&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<span class=code-tag>you might define a result like this:<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 src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">action&nbsp;name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fragment</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">FragmentAction</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">result&nbsp;name</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">next</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;type</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">redirect-action</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">$</span><span id=Codehighlighter1_94_105_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"></span><span id=Codehighlighter1_94_105_Open_Text><span style="COLOR: #000000">{nextAction}</span></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">result</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">action</span><span style="COLOR: #000000">&gt;</span></div>
</span>If a <tt>FragmentAction</tt> method returns "next" the actual <em>value</em> of that result will be whatever is in <tt>FragmentAction</tt>'s <tt>nextAction</tt> property. So <tt>nextAction</tt> may be computed based on whatever state information necessary then passed at runtime to "next"'s <tt>redirect-action</tt>.<br><br>总结，struts2对于result提供了很多很灵活的设置方法，用户可以使用相应的方法处理特定的逻辑。对于各种情况，总能找出相应的方法来出来。<br><br>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/126530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-06-27 11:29 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/06/27/126530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2 flow 配置</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/05/10/116455.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Thu, 10 May 2007 05:12:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/05/10/116455.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/116455.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/05/10/116455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/116455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/116455.html</trackback:ping><description><![CDATA[<br>1、默认配置<br>2、别名<br>3、返回结果
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/116455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-05-10 13:12 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/05/10/116455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2--form设计</title><link>http://www.blogjava.net/wuxufeng8080/archive/2007/05/09/116132.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Wed, 09 May 2007 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2007/05/09/116132.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/116132.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2007/05/09/116132.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/116132.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/116132.html</trackback:ping><description><![CDATA[<br><strong>1、form的 theme属性</strong><br><br>你可以在&lt;s:form&gt;加上theme="simple"属性，然后自已布局form的输出。如: <br>&lt;s:form action="Login" method="POST" theme="simple"&gt; <br>&lt;table&gt; <br>&lt;tr&gt; <br>&lt;td&gt; <br>User name: &lt;s:textfield name="name" label="User name"/&gt; <br>&lt;/td&gt; <br>&lt;td&gt; <br>Password: &lt;s:password name="password" label="Password"/&gt; <br>&lt;/td&gt; <br>&lt;/tr&gt; <br>&lt;/table&gt; <br>&lt;/s:form&gt;
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/116132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2007-05-09 11:13 <a href="http://www.blogjava.net/wuxufeng8080/archive/2007/05/09/116132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts 2.0 起步</title><link>http://www.blogjava.net/wuxufeng8080/archive/2006/12/29/90656.html</link><dc:creator>风人园</dc:creator><author>风人园</author><pubDate>Fri, 29 Dec 2006 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/wuxufeng8080/archive/2006/12/29/90656.html</guid><wfw:comment>http://www.blogjava.net/wuxufeng8080/comments/90656.html</wfw:comment><comments>http://www.blogjava.net/wuxufeng8080/archive/2006/12/29/90656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wuxufeng8080/comments/commentRss/90656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wuxufeng8080/services/trackbacks/90656.html</trackback:ping><description><![CDATA[<p>参考 <a href="http://www.blogjava.net/max/category/16130.html">http://www.blogjava.net/max/category/16130.html</a><br><br>1、添加struts2的jar包，struts2-core-2.x.x.jar, struts2-api-2.x.x.jar (struts2-all-2.x.x.jar即可，其他的struts2的插件包已经包含在里面)。<br>&nbsp;&nbsp;&nbsp;如添加其他的插件包，可能会出现文件重复，具体可以看异常信息。<br>&nbsp;&nbsp;&nbsp;或者不要加all包，而使用插件包，可以减小包的大小。<br>2、修改web.xml</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span> <img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> <span style="COLOR: #0000ff">&lt;?</span> <span style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span> <span style="COLOR: #0000ff">?&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> </span><span style="COLOR: #0000ff">&lt;</span> <span style="COLOR: #800000">web-app&nbsp;</span> <span style="COLOR: #ff0000">version</span> <span style="COLOR: #0000ff">="2.4"</span> <span style="COLOR: #ff0000">&nbsp;<br></span><span style="COLOR: #008080">&nbsp;3</span> <span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;xmlns</span> <span style="COLOR: #0000ff">="http://java.sun.com/xml/ns/j2ee"</span> <span style="COLOR: #ff0000">&nbsp;<br></span><span style="COLOR: #008080">&nbsp;4</span> <span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;xmlns:xsi</span> <span style="COLOR: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span> <span style="COLOR: #ff0000">&nbsp;<br></span><span style="COLOR: #008080">&nbsp;5</span> <span style="COLOR: #ff0000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;xsi:schemaLocation</span> <span style="COLOR: #0000ff">="http://java.sun.com/xml/ns/j2ee&nbsp;<br></span><span style="COLOR: #008080">&nbsp;6</span> <span style="COLOR: #0000ff"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;7</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;</span> <span style="COLOR: #0000ff">&lt;</span> <span style="COLOR: #800000">display-name</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000">Struts2&nbsp;Hello&nbsp;World!</span> <span style="COLOR: #0000ff">&lt;/</span> <span style="COLOR: #800000">display-name</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000">&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;8</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> <br></span><span style="COLOR: #008080">&nbsp;9</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">&lt;</span> <span style="COLOR: #800000">filter</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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></span><span style="COLOR: #008080">11</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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"><br></span><span style="COLOR: #008080">12</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts2.dispatcher.FilterDispatcher<br></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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"><br></span><span style="COLOR: #008080">14</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">&lt;/</span> <span style="COLOR: #800000">filter</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">15</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">&lt;</span> <span style="COLOR: #800000">filter-mapping</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000">&nbsp;&nbsp;<br></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">&nbsp;&nbsp;<br></span><span style="COLOR: #008080">17</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&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">&nbsp;&nbsp;<br></span><span style="COLOR: #008080">18</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">&lt;/</span> <span style="COLOR: #800000">filter-mapping</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000">&nbsp;&nbsp;<br></span><span style="COLOR: #008080">19</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> </span><span style="COLOR: #0000ff">&lt;/</span> <span style="COLOR: #800000">web-app</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">20</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> </span></div>
<p><br>3、在classpath下添加struts.properties文件，内容如下<br>struts.devMode = true<br>struts.enable.DynamicMethodInvocation = false<br><br>4、在classpath下添加struts.xml，这个是对应struts1.x里面的struts-config.xml</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span> <img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> <span style="COLOR: #0000ff">&lt;!</span> <span style="COLOR: #ff00ff">DOCTYPE&nbsp;struts&nbsp;PUBLIC<br></span><span style="COLOR: #008080">&nbsp;2</span> <span style="COLOR: #ff00ff"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN"<br></span><span style="COLOR: #008080">&nbsp;3</span> <span style="COLOR: #ff00ff"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"http://struts.apache.org/dtds/struts-2.0.dtd"</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> </span><span style="COLOR: #0000ff">&lt;</span> <span style="COLOR: #800000">struts</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">&lt;</span> <span style="COLOR: #800000">package&nbsp;</span> <span style="COLOR: #ff0000">name</span> <span style="COLOR: #0000ff">="example"</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">&nbsp;6</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&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">="hello"</span> <span style="COLOR: #ff0000">&nbsp;class</span> <span style="COLOR: #0000ff">="com.ivo.struts2.HelloWorld"</span> <span style="COLOR: #ff0000">&nbsp;method</span> <span style="COLOR: #0000ff">="aliasAction"</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;7</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">/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">&nbsp;8</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&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">&nbsp;9</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&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">="Login"</span> <span style="COLOR: #ff0000">&nbsp;class</span> <span style="COLOR: #0000ff">="com.ivo.struts2.Login"</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">/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">11</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">12</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">="LoginX"</span> <span style="COLOR: #ff0000">&nbsp;class</span> <span style="COLOR: #0000ff">="com.ivo.struts2.LoginX"</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">/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">14</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&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">15</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span> <span style="COLOR: #0000ff">&lt;/</span> <span style="COLOR: #800000">package</span> <span style="COLOR: #0000ff">&gt;</span> <span style="COLOR: #000000"><br></span><span style="COLOR: #008080">16</span> <span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top> </span><span style="COLOR: #0000ff">&lt;/</span> <span style="COLOR: #800000">struts</span> <span style="COLOR: #0000ff">&gt;</span> </div>
<p><br>注意，struts2的两个相关文件需要放在classpath下</p>
<img src ="http://www.blogjava.net/wuxufeng8080/aggbug/90656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wuxufeng8080/" target="_blank">风人园</a> 2006-12-29 10:09 <a href="http://www.blogjava.net/wuxufeng8080/archive/2006/12/29/90656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>