﻿<?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-小毅的遐想-文章分类-struts</title><link>http://www.blogjava.net/xiaoyi/category/33884.html</link><description>阳光总在风雨后,让我们在雨中毅然前行,收获每一份喜悦的欢笑o(∩_∩)o...</description><language>zh-cn</language><lastBuildDate>Tue, 07 Feb 2012 17:57:36 GMT</lastBuildDate><pubDate>Tue, 07 Feb 2012 17:57:36 GMT</pubDate><ttl>60</ttl><item><title>小毅收藏整理----解决struts、jsp下载文件时中文文件名乱码问题</title><link>http://www.blogjava.net/xiaoyi/articles/369461.html</link><dc:creator>可爱的小毅</dc:creator><author>可爱的小毅</author><pubDate>Mon, 06 Feb 2012 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/xiaoyi/articles/369461.html</guid><wfw:comment>http://www.blogjava.net/xiaoyi/comments/369461.html</wfw:comment><comments>http://www.blogjava.net/xiaoyi/articles/369461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaoyi/comments/commentRss/369461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaoyi/services/trackbacks/369461.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 引用：http://blog.csdn.net/csh624366188/article/details/6695702&nbsp;感谢原作者 本人仅作整理、分享。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->方案一：原来处理下载的代码如下：&n...&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaoyi/articles/369461.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaoyi/aggbug/369461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaoyi/" target="_blank">可爱的小毅</a> 2012-02-06 10:49 <a href="http://www.blogjava.net/xiaoyi/articles/369461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小毅也玩struts2之validate方法简单的数据验证</title><link>http://www.blogjava.net/xiaoyi/articles/258477.html</link><dc:creator>可爱的小毅</dc:creator><author>可爱的小毅</author><pubDate>Sun, 08 Mar 2009 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/xiaoyi/articles/258477.html</guid><wfw:comment>http://www.blogjava.net/xiaoyi/comments/258477.html</wfw:comment><comments>http://www.blogjava.net/xiaoyi/articles/258477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaoyi/comments/commentRss/258477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaoyi/services/trackbacks/258477.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt;"><span style="font-size: 12pt;"><span style="color: #000000;"><span style="color: #040000;">
<span style="color: #ba0000;"><span style="font-size: 14pt;"><span style="font-size: 12pt;"><span style="font-size: 14pt;"><span style="font-size: 12pt;">
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">在</span>Struts2<span style="font-family: 宋体;">中最简单的验证数据的方法是使用</span>validate<span style="font-family: 宋体;">。我们从</span>ActionSupport<span style="font-family: 宋体;">类的源代码中可以看到，</span>ActionSupport<span style="font-family: 宋体;">类实现了一个</span>Validateable<span style="font-family: 宋体;">接口。这个接口只有一个</span>validate<span style="font-family: 宋体;">方法。如果</span>Action<span style="font-family: 宋体;">类实现了这个接口，</span>Struts2<span style="font-family: 宋体;">在调用</span>execute<span style="font-family: 宋体;">方法之前首先会调用这个方法，我们可以在</span>validate<span style="font-family: 宋体;">方法中验证，如果发生错误，可以根据错误的</span>level<span style="font-family: 宋体;">选择字段级错误，还是动作级错误。并且可使用</span>addFieldError<span style="font-family: 宋体;">或</span>addActionError<span style="font-family: 宋体;">加入相应的错误信息，如果存在</span>Action<span style="font-family: 宋体;">或</span>Field<span style="font-family: 宋体;">错误，</span>Struts2<span style="font-family: 宋体;">会返回&#8220;</span>input<span style="font-family: 宋体;">&#8221;（这个并不用开发人员写，由</span>Struts2<span style="font-family: 宋体;">自动返回），如果返回了&#8220;</span>input<span style="font-family: 宋体;">&#8221;，</span>Struts2<span style="font-family: 宋体;">就不会再调用</span>execute<span style="font-family: 宋体;">方法了。如果不存在错误信息，</span>Struts2<span style="font-family: 宋体;">在最后会调用</span>execute<span style="font-family: 宋体;">方法。</span></p>
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">这两个</span>add<span style="font-family: 宋体;">方法和</span>ActionErrors<span style="font-family: 宋体;">类中的</span>add<span style="font-family: 宋体;">方法类似，只是</span>add<span style="font-family: 宋体;">方法的错误信息需要一个</span>ActionMessage<span style="font-family: 宋体;">对象，比较麻烦。除了加入错误信息外，还可以使用</span>addActionMessage<span style="font-family: 宋体;">方法加入成功提交后的信息。当提交成功后，可以显示这些信息。</span></p>
<span style="font-size: 10.5pt; font-family: 宋体;">以上三个</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">add</span><span style="font-size: 10.5pt; font-family: 宋体;">方法都在</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">ValidationAware</span><span style="font-size: 10.5pt; font-family: 宋体;">接口中定义，并且在</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">ActionSupport</span><span style="font-size: 10.5pt; font-family: 宋体;">类中有一个默认的实现。其实，在</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">ActionSupport</span><span style="font-size: 10.5pt; font-family: 宋体;">类中的实现实际上是调用了</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">ValidationAwareSupport</span><span style="font-size: 10.5pt; font-family: 宋体;">中的相应的方法，也就是这三个</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">add</span><span style="font-size: 10.5pt; font-family: 宋体;">方法是在</span><span style="font-size: 10.5pt; font-family: 'Times New Roman';">ValidationAwareSupport</span><span style="font-size: 10.5pt; font-family: 宋体;">类中实现的，代码如下：<br />
</span></span></span>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;ValidationAwareSupport&nbsp;validationAware&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ValidationAwareSupport();<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addActionError(String&nbsp;anErrorMessage)&nbsp;<br />
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validationAware.addActionError(anErrorMessage);<br />
}<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addActionMessage(String&nbsp;aMessage)&nbsp;<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;validationAware.addActionMessage(aMessage);<br />
}<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addFieldError(String&nbsp;fieldName,&nbsp;String&nbsp;errorMessage)&nbsp;<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;validationAware.addFieldError(fieldName,&nbsp;errorMessage);<br />
}<br />
</span></div>
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">下面我们来实现一个简单的验证程序，来体验一个</span>validate<span style="font-family: 宋体;">方法的使用。</span></p>
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">先来在</span>Web<span style="font-family: 宋体;">根目录建立一个主页面（</span>validate.jsp<span style="font-family: 宋体;">），代码如下：</span></p>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">%@&nbsp;page&nbsp;</span><span style="color: #ff0000;">language</span><span style="color: #0000ff;">="java"</span><span style="color: #ff0000;">&nbsp;import</span><span style="color: #0000ff;">="java.util.*"</span><span style="color: #ff0000;">&nbsp;pageEncoding</span><span style="color: #0000ff;">="GBK"</span><span style="color: #ff0000;">%</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">%@&nbsp;taglib&nbsp;</span><span style="color: #ff0000;">prefix</span><span style="color: #0000ff;">="s"</span><span style="color: #ff0000;">&nbsp;uri</span><span style="color: #0000ff;">="/struts-tags"</span><span style="color: #ff0000;">&nbsp;%</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">验证数据</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">s:actionerror</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">s:actionmessage</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">s:form&nbsp;</span><span style="color: #ff0000;">action</span><span style="color: #0000ff;">="validate.action"</span><span style="color: #ff0000;">&nbsp;&nbsp;theme</span><span style="color: #0000ff;">="simple"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;输入内容：</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">s:textfield&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="msg"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">s:fielderror&nbsp;</span><span style="color: #ff0000;">key</span><span style="color: #0000ff;">="msg.hello"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">br</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&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 />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">s:form</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">在上面的代码中，使用了</span>Struts2<span style="font-family: 宋体;">的</span>tag<span style="font-family: 宋体;">：</span>&lt;s:actionerror&gt;<span style="font-family: 宋体;">、</span>&lt;s:fielderror&gt;<span style="font-family: 宋体;">和</span>&lt;s:actionmessage&gt;<span style="font-family: 宋体;">，分别用来显示动作错误信息，字段错误信息，和动作信息。如果信息为空，则不显示。</span></p>
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">现在我们来实现一个动作类，代码如下：</span></p>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;action;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.http.</span><span style="color: #000000;">*</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.opensymphony.xwork2.ActionSupport;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.apache.struts2.interceptor.</span><span style="color: #000000;">*</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;ValidateAction&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;ActionSupport<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;msg;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;execute()&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(SUCCESS);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;SUCCESS;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;validate()<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">msg.equalsIgnoreCase(</span><span style="color: #000000;">"</span><span style="color: #000000;">hello</span><span style="color: #000000;">"</span><span style="color: #000000;">))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(INPUT);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.addFieldError(</span><span style="color: #000000;">"</span><span style="color: #000000;">msg.hello</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">必须输入hello!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.addActionError(</span><span style="color: #000000;">"</span><span style="color: #000000;">处理动作失败!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.addActionMessage(</span><span style="color: #000000;">"</span><span style="color: #000000;">提交成功</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getMsg()<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;msg;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setMsg(String&nbsp;msg)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.msg&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;msg;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<span style="font-size: 14pt;"><span style="font-size: 12pt;"><span style="font-size: 10.5pt; font-family: 宋体;"><br />
</span></span></span>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">大家从上面的代码可以看出，</span>Field<span style="font-family: 宋体;">错误需要一个</span>key<span style="font-family: 宋体;">（一般用来表示是哪一个属性出的错误），而</span>Action<span style="font-family: 宋体;">错误和</span>Action<span style="font-family: 宋体;">消息只要提供一个信息字符串就可以了。</span></p>
<p style="text-indent: 21pt;"><span style="font-family: 宋体;">最后来配置一下这个</span>Action<span style="font-family: 宋体;">，代码如下：</span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">package&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="demo"</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 />
&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;">="validate"</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">="action.ValidateAction"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&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;">/error/validate.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 />
&nbsp;&nbsp;&nbsp;&nbsp;&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;">="input"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/error/validate.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 />
&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: #0000ff;">&lt;/</span><span style="color: #800000;">package</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<br />
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">假设应用程序的上下文路径为</span>demo<span style="font-family: 宋体;">，则可通过如下的</span>URL<span style="font-family: 宋体;">来测试程序：</span></p>
<p>http://localhost:8080/demo/validate.jsp</p>
<p style="text-indent: 21.75pt;"><span style="font-family: 宋体;">我们还可以使用</span>ValidationAware<span style="font-family: 宋体;">接口的其他方法（由</span>ValidationAwareSupport<span style="font-family: 宋体;">类实现）获得或设置字段错误信息、动作错误信息以及动作消息。如</span>hasActionErrors<span style="font-family: 宋体;">方法判断是否存在动作层的错误，</span>getFieldErrors<span style="font-family: 宋体;">获得字段错误信息（一个</span>Map<span style="font-family: 宋体;">对象）。下面是</span>ValidationAware<span style="font-family: 宋体;">接口提供的所有的方法：</span></p>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;com.opensymphony.xwork2;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Collection;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.util.Map;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">interface</span><span style="color: #000000;">&nbsp;ValidationAware<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setActionErrors(Collection&nbsp;errorMessages);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Collection&nbsp;getActionErrors();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setActionMessages(Collection&nbsp;messages);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Collection&nbsp;getActionMessages();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setFieldErrors(Map&nbsp;errorMap);<br />
&nbsp;&nbsp;&nbsp;&nbsp;Map&nbsp;getFieldErrors();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addActionError(String&nbsp;anErrorMessage);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addActionMessage(String&nbsp;aMessage);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addFieldError(String&nbsp;fieldName,&nbsp;String&nbsp;errorMessage);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;hasActionErrors();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;hasActionMessages();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;hasErrors();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;hasFieldErrors();<br />
}<br />
</span></div>
</span></span></span>
</span></span></span></span>
<img src ="http://www.blogjava.net/xiaoyi/aggbug/258477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaoyi/" target="_blank">可爱的小毅</a> 2009-03-08 16:46 <a href="http://www.blogjava.net/xiaoyi/articles/258477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小毅也玩struts2之helloWorld程序改进版(增加了验证功能和struts标签使用)</title><link>http://www.blogjava.net/xiaoyi/articles/233430.html</link><dc:creator>可爱的小毅</dc:creator><author>可爱的小毅</author><pubDate>Thu, 09 Oct 2008 12:30:00 GMT</pubDate><guid>http://www.blogjava.net/xiaoyi/articles/233430.html</guid><wfw:comment>http://www.blogjava.net/xiaoyi/comments/233430.html</wfw:comment><comments>http://www.blogjava.net/xiaoyi/articles/233430.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaoyi/comments/commentRss/233430.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaoyi/services/trackbacks/233430.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: login.jsp&lt;%@&nbsp;page&nbsp;language="java"&nbsp;pageEncoding="UTF-8"%&gt;&lt;%@taglib&nbsp;prefix="s"&nbsp;uri="/struts-tags"&nbsp;%&gt;&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD...&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaoyi/articles/233430.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaoyi/aggbug/233430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaoyi/" target="_blank">可爱的小毅</a> 2008-10-09 20:30 <a href="http://www.blogjava.net/xiaoyi/articles/233430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小毅也玩struts2之---&gt;HelloWorld程序</title><link>http://www.blogjava.net/xiaoyi/articles/233262.html</link><dc:creator>可爱的小毅</dc:creator><author>可爱的小毅</author><pubDate>Wed, 08 Oct 2008 20:20:00 GMT</pubDate><guid>http://www.blogjava.net/xiaoyi/articles/233262.html</guid><wfw:comment>http://www.blogjava.net/xiaoyi/comments/233262.html</wfw:comment><comments>http://www.blogjava.net/xiaoyi/articles/233262.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaoyi/comments/commentRss/233262.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaoyi/services/trackbacks/233262.html</trackback:ping><description><![CDATA[<img height="321" alt="" src="http://www.blogjava.net/images/blogjava_net/xiaoyi/struts2prj_helloworld.jpg" width="220" border="0" /><strong>项目结构<br />
</strong><span style="font-size: 10pt"><span style="color: #000000"><span style="font-size: 10pt">五个struts2必备jar包,可以到<a href="http://www.struts.apache.org/">http://www.struts.apache.org</a>下载最新的struts2,struts2采用过滤器org.apache.struts2.dispatcher.FilterDispatcher来过滤客户端发送给服务器的所有请求。struts2.0是strtus1.*与webwork的结合。struts2.0会自动到工程下classes下寻找struts.xml(struts2.0的配置文件)来解析配置的action等东东。废话少说，代码如下：<br />
<strong>开发步骤:<br />
1、 下载struts2.0并添加核心jar包<br />
2、写页面<br />
</strong><span style="color: #ff0000"><strong>index.jsp<br />
</strong></span>
<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"><strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">%@&nbsp;page&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="java"</span><span style="color: #ff0000">&nbsp;import</span><span style="color: #0000ff">="java.util.*"</span><span style="color: #ff0000">&nbsp;pageEncoding</span><span style="color: #0000ff">="UTF-8"</span><span style="color: #ff0000">%</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">struts的Hello&nbsp;World程序</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">form&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">='testform'&nbsp;</span><span style="color: #ff0000">method</span><span style="color: #0000ff">='post'&nbsp;</span><span style="color: #ff0000">action</span><span style="color: #0000ff">="login.action"</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名：</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">name</span></strong><strong><span style="color: #0000ff">='username'&gt;&lt;br&gt;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">密码：&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;input&nbsp;name</span><span style="color: #0000ff">='pwd'&nbsp;</span><span style="color: #ff0000">type</span></strong><strong><span style="color: #0000ff">='password'&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">&lt;input&nbsp;type</span><span style="color: #0000ff">='submit'&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">='&nbsp;</span><span style="color: #ff0000">提&nbsp;&nbsp;交&nbsp;'</span><span style="color: #0000ff">&gt;</span><span style="color: #ff0000">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #ff0000">&amp;nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">='reset'&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">='&nbsp;</span><span style="color: #ff0000">重&nbsp;&nbsp;置&nbsp;'</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;/</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></strong></div>
<br />
<span style="color: #ff0000"><strong>show.jsp</strong>
<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"><strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">%@&nbsp;page&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="java"</span><span style="color: #ff0000">&nbsp;pageEncoding</span><span style="color: #0000ff">="UTF-8"</span><span style="color: #ff0000">%</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">显示结果</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">用户名---&gt;${requestScope.username}</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;密码---&gt;${requestScope.pwd}</strong></span><strong><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></strong><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></strong></span><strong><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></strong></div>
</span><br />
<strong>3、写action<br />
</strong>
<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"><strong><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span></strong><strong><span style="color: #000000">&nbsp;com.yz.struts2.actions;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_58_500_Open_Image" onclick="this.style.display='none'; Codehighlighter1_58_500_Open_Text.style.display='none'; Codehighlighter1_58_500_Closed_Image.style.display='inline'; Codehighlighter1_58_500_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_58_500_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_58_500_Closed_Text.style.display='none'; Codehighlighter1_58_500_Open_Image.style.display='inline'; Codehighlighter1_58_500_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;loginAction&nbsp;</span><span id="Codehighlighter1_58_500_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></strong><span id="Codehighlighter1_58_500_Open_Text"><strong><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span></strong><strong><span style="color: #000000">&nbsp;String&nbsp;username;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span></strong><strong><span style="color: #000000">&nbsp;String&nbsp;pwd;<br />
<img id="Codehighlighter1_138_160_Open_Image" onclick="this.style.display='none'; Codehighlighter1_138_160_Open_Text.style.display='none'; Codehighlighter1_138_160_Closed_Image.style.display='inline'; Codehighlighter1_138_160_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_138_160_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_138_160_Closed_Text.style.display='none'; Codehighlighter1_138_160_Open_Image.style.display='inline'; Codehighlighter1_138_160_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getUsername()&nbsp;</span><span id="Codehighlighter1_138_160_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></strong><span id="Codehighlighter1_138_160_Open_Text"><strong><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></strong><span style="color: #000000"><strong>&nbsp;username;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</strong></span></span><span style="color: #000000"><br />
<strong><img id="Codehighlighter1_204_235_Open_Image" onclick="this.style.display='none'; Codehighlighter1_204_235_Open_Text.style.display='none'; Codehighlighter1_204_235_Closed_Image.style.display='inline'; Codehighlighter1_204_235_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_204_235_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_204_235_Closed_Text.style.display='none'; Codehighlighter1_204_235_Open_Image.style.display='inline'; Codehighlighter1_204_235_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setUsername(String&nbsp;username)&nbsp;</span><span id="Codehighlighter1_204_235_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></strong><span id="Codehighlighter1_204_235_Open_Text"><strong><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.username&nbsp;</span><span style="color: #000000">=</span></strong><span style="color: #000000"><strong>&nbsp;username;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</strong></span></span><span style="color: #000000"><br />
<strong><img id="Codehighlighter1_261_278_Open_Image" onclick="this.style.display='none'; Codehighlighter1_261_278_Open_Text.style.display='none'; Codehighlighter1_261_278_Closed_Image.style.display='inline'; Codehighlighter1_261_278_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_261_278_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_261_278_Closed_Text.style.display='none'; Codehighlighter1_261_278_Open_Image.style.display='inline'; Codehighlighter1_261_278_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getPwd()&nbsp;</span><span id="Codehighlighter1_261_278_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></strong><span id="Codehighlighter1_261_278_Open_Text"><strong><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></strong><span style="color: #000000"><strong>&nbsp;pwd;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</strong></span></span><span style="color: #000000"><br />
<strong><img id="Codehighlighter1_312_333_Open_Image" onclick="this.style.display='none'; Codehighlighter1_312_333_Open_Text.style.display='none'; Codehighlighter1_312_333_Closed_Image.style.display='inline'; Codehighlighter1_312_333_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_312_333_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_312_333_Closed_Text.style.display='none'; Codehighlighter1_312_333_Open_Image.style.display='inline'; Codehighlighter1_312_333_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setPwd(String&nbsp;pwd)&nbsp;</span><span id="Codehighlighter1_312_333_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></strong><span id="Codehighlighter1_312_333_Open_Text"><strong><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.pwd&nbsp;</span><span style="color: #000000">=</span></strong><span style="color: #000000"><strong>&nbsp;pwd;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</strong></span></span><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_364_498_Open_Image" onclick="this.style.display='none'; Codehighlighter1_364_498_Open_Text.style.display='none'; Codehighlighter1_364_498_Closed_Image.style.display='inline'; Codehighlighter1_364_498_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_364_498_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_364_498_Closed_Text.style.display='none'; Codehighlighter1_364_498_Open_Image.style.display='inline'; Codehighlighter1_364_498_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><strong><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;helloWorld()</span><span id="Codehighlighter1_364_498_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></strong><span id="Codehighlighter1_364_498_Open_Text"><strong><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">用户名---&gt;</span><span style="color: #000000">"</span><span style="color: #000000">+</span></strong><strong><span style="color: #000000">username);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">密码---&gt;</span><span style="color: #000000">"</span><span style="color: #000000">+</span></strong><strong><span style="color: #000000">pwd);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  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">ok</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">查找名字为ok的result，相当于struts1.*的foward名</span></strong><span style="color: #008000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></strong></span><span style="color: #000000"><strong>&nbsp;&nbsp;&nbsp;&nbsp;}</strong></span></span><span style="color: #000000"><br />
<strong><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</strong></span></span></div>
<br />
</span></span><strong>4、配置struts2.0开发环境---struts.xml和web.xml<br />
<span style="color: #ff0000">web.xml<br />
</span></strong>
<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"  alt="" /><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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></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;xmlns</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/j2ee"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/j2ee&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;struts2采用过滤器过滤客户端发送给服务器的所有请求&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts2.dispatcher.FilterDispatcher<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">index.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span></div>
<strong style="color: #ff0000">struts.xml</strong><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"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"&nbsp;</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;struts&nbsp;PUBLIC<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN"<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">struts</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;struts2会自动到classes下找struts.xml，<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />直接放在src下工具会自动把src下的文件编译到classes下&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />dtd头信息表示&nbsp;sturs为根标签<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;struts2这个包继承sturs2内置的包struts-default&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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">="struts2"</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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;配置action<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name：&nbsp;对应index.jsp页面中form的action=&nbsp;login.action&nbsp;的login<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struts默认所有以点action结尾的请求交给struts处理，因为继承自webwork的特性，习惯于这样。。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class:&nbsp;action对应的类,包名点类名全路径(com.yz.struts2.loginAction)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method：请求该action时自动执行的方法，如果没有配置默认执行execute方法<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">action&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="login"</span><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="com.yz.struts2.actions.loginAction"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method</span><span style="color: #0000ff">="helloWorld"</span><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;converter</span><span style="color: #0000ff">=""</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;result默认的name为success&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&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">="ok"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/show.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"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">struts</span><span style="color: #0000ff">&gt;</span></div>
</span>
<img src ="http://www.blogjava.net/xiaoyi/aggbug/233262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaoyi/" target="_blank">可爱的小毅</a> 2008-10-09 04:20 <a href="http://www.blogjava.net/xiaoyi/articles/233262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>