﻿<?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-Denis's Java Library-文章分类-struts</title><link>http://www.blogjava.net/DenisLing/category/4472.html</link><description>The only documentation is the code itself</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 06:36:57 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 06:36:57 GMT</pubDate><ttl>60</ttl><item><title>自定义标签获取struts中action的全部路径（原创）</title><link>http://www.blogjava.net/DenisLing/articles/19113.html</link><dc:creator>DenisLing</dc:creator><author>DenisLing</author><pubDate>Thu, 10 Nov 2005 05:24:00 GMT</pubDate><guid>http://www.blogjava.net/DenisLing/articles/19113.html</guid><wfw:comment>http://www.blogjava.net/DenisLing/comments/19113.html</wfw:comment><comments>http://www.blogjava.net/DenisLing/articles/19113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DenisLing/comments/commentRss/19113.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DenisLing/services/trackbacks/19113.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由于项目里面由需要一个form可以提交多个action（本来可以用
dispatch值来实现，后来考虑到要使用validator框架验证）。后来考虑的方案为使用js来控制form的流向，例如<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><span style="color: rgb(0, 0, 0);">form.action</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">'/bookstore/checkId.</span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);">'</span></div><br>不过新的问题来了！如何能不用hardcode而拿到我要的action的实际路径呢？比如我定义的struts-config文件里面的action是&nbsp; <br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><span style="color: rgb(0, 0, 0);">path</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">/checkId</span><span style="color: rgb(0, 0, 0);">"</span></div>但是实际解释后的path是：<br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><span style="color: rgb(0, 0, 0);">action＝'</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">bookstore</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">checkId.</span><span style="color: rgb(0, 0, 255);">do</span><span style="color: rgb(0, 0, 0);">'</span></div>前
缀和后面的后缀.do都是根据你的项目部署的路径和你在web.xml中配置的mapping的后缀有关系，如果我把内容写死到jsp中那以后我要是想把
checkId.do改成checkId.action那就要更改jsp，由于struts本来提供的几个taglib里面的<br><br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">html:form&nbsp;action</span><span style="color: rgb(0, 0, 0);">="</span><span style="color: rgb(0, 0, 0);">/checkId"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">&gt;</span></div><br>综合了一下决定还是自己写个taglib来实现，其实只需要照着struts 中的 FormTag.java 文件依葫芦画瓢就可以了，一下为本人的代码部分<br><br>StrutsActionCustomTag.java<br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);">&nbsp;com.denis.framework.common.taglib.strutsActionExt;<br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;javax.servlet.http.HttpServletResponse;<br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;javax.servlet.jsp.JspException;<br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;javax.servlet.jsp.tagext.TagSupport;<br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;org.apache.struts.taglib.TagUtils;<br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><br><img id="Codehighlighter1_288_1030_Open_Image" onclick="this.style.display='none'; Codehighlighter1_288_1030_Open_Text.style.display='none'; Codehighlighter1_288_1030_Closed_Image.style.display='inline'; Codehighlighter1_288_1030_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_288_1030_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_288_1030_Closed_Text.style.display='none'; Codehighlighter1_288_1030_Open_Image.style.display='inline'; Codehighlighter1_288_1030_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;StrutsActionCustomTag&nbsp;</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">&nbsp;TagSupport&nbsp;</span><span id="Codehighlighter1_288_1030_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_288_1030_Open_Text"><span style="color: rgb(0, 0, 0);">{<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">protected</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;actionName&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;<br><img id="Codehighlighter1_370_394_Open_Image" onclick="this.style.display='none'; Codehighlighter1_370_394_Open_Text.style.display='none'; Codehighlighter1_370_394_Closed_Image.style.display='inline'; Codehighlighter1_370_394_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_370_394_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_370_394_Closed_Text.style.display='none'; Codehighlighter1_370_394_Open_Image.style.display='inline'; Codehighlighter1_370_394_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;getActionName()&nbsp;</span><span id="Codehighlighter1_370_394_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_370_394_Open_Text"><span style="color: rgb(0, 0, 0);">{<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;actionName;<br><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_443_478_Open_Image" onclick="this.style.display='none'; Codehighlighter1_443_478_Open_Text.style.display='none'; Codehighlighter1_443_478_Closed_Image.style.display='inline'; Codehighlighter1_443_478_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_443_478_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_443_478_Closed_Text.style.display='none'; Codehighlighter1_443_478_Open_Image.style.display='inline'; Codehighlighter1_443_478_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;setActionName(String&nbsp;actionName)&nbsp;</span><span id="Codehighlighter1_443_478_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_443_478_Open_Text"><span style="color: rgb(0, 0, 0);">{<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.actionName&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;actionName;<br><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_526_934_Open_Image" onclick="this.style.display='none'; Codehighlighter1_526_934_Open_Text.style.display='none'; Codehighlighter1_526_934_Closed_Image.style.display='inline'; Codehighlighter1_526_934_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_526_934_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_526_934_Closed_Text.style.display='none'; Codehighlighter1_526_934_Open_Image.style.display='inline'; Codehighlighter1_526_934_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;doStartTag()&nbsp;</span><span style="color: rgb(0, 0, 255);">throws</span><span style="color: rgb(0, 0, 0);">&nbsp;JspException&nbsp;</span><span id="Codehighlighter1_526_934_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_526_934_Open_Text"><span style="color: rgb(0, 0, 0);">{<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;results&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;StringBuffer();<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletResponse&nbsp;response&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(HttpServletResponse)&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.pageContext.getResponse();<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;results.append(response.encodeURL(&nbsp;TagUtils.getInstance().getActionMappingURL(&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.actionName&nbsp;,&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.pageContext))&nbsp;);<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TagUtils.getInstance().write(pageContext,&nbsp;results.toString());<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;(EVAL_BODY_INCLUDE);<br><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img id="Codehighlighter1_963_1028_Open_Image" onclick="this.style.display='none'; Codehighlighter1_963_1028_Open_Text.style.display='none'; Codehighlighter1_963_1028_Closed_Image.style.display='inline'; Codehighlighter1_963_1028_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_963_1028_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_963_1028_Closed_Text.style.display='none'; Codehighlighter1_963_1028_Open_Image.style.display='inline'; Codehighlighter1_963_1028_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;release()&nbsp;</span><span id="Codehighlighter1_963_1028_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_963_1028_Open_Text"><span style="color: rgb(0, 0, 0);">{<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">.release();<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.actionName&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">&nbsp;;<br><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}</span></span></div><br><br>tld定义部分<br><br>framework-struts.tld<br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><span style="color: rgb(0, 0, 255);">&lt;?</span><span style="color: rgb(255, 0, 255);">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: rgb(0, 0, 255);">?&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;!</span><span style="color: rgb(255, 0, 255);">DOCTYPE&nbsp;taglib&nbsp;PUBLIC&nbsp;"-//Sun&nbsp;Microsystems,&nbsp;Inc.//DTD&nbsp;JSP&nbsp;Tag&nbsp;Library&nbsp;1.1//EN"&nbsp;"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">taglib</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">tlibversion</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">1.0</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">tlibversion</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">jspversion</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">1.1</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">jspversion</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">shortname</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">framework</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">shortname</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">uri</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">http://www.denisFramework.org/Framework-Tag</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">uri</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">tag</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">getActionUrl</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">tagclass</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">com.denis.framework.common.taglib.strutsActionExt.StrutsActionCustomTag</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">tagclass</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">bodycontent</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">empty</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">bodycontent</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">attribute</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">actionName</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">required</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">true</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">required</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">rtexprvalue</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">true</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">rtexprvalue</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">attribute</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">tag</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">taglib</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span></div><br>ok ! 直接在jsp中如下使用即可取到action的真正路径<br><br>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"><span style="color: rgb(0, 0, 0);">&nbsp;<br><img id="Codehighlighter1_4_25_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4_25_Open_Text.style.display='none'; Codehighlighter1_4_25_Closed_Image.style.display='inline'; Codehighlighter1_4_25_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_4_25_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_4_25_Closed_Text.style.display='none'; Codehighlighter1_4_25_Open_Image.style.display='inline'; Codehighlighter1_4_25_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">&lt;%</span><span id="Codehighlighter1_4_25_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_4_25_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">@&nbsp;page&nbsp;language</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">java</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">%&gt;</span><span style="color: rgb(0, 0, 0);"><br><img id="Codehighlighter1_31_101_Open_Image" onclick="this.style.display='none'; Codehighlighter1_31_101_Open_Text.style.display='none'; Codehighlighter1_31_101_Closed_Image.style.display='inline'; Codehighlighter1_31_101_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_31_101_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_31_101_Closed_Text.style.display='none'; Codehighlighter1_31_101_Open_Image.style.display='inline'; Codehighlighter1_31_101_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">&lt;%</span><span id="Codehighlighter1_31_101_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_31_101_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">@&nbsp;taglib&nbsp;uri</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">http://jakarta.apache.org/struts/tags-bean</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;prefix</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">bean</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">%&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;<br><img id="Codehighlighter1_108_178_Open_Image" onclick="this.style.display='none'; Codehighlighter1_108_178_Open_Text.style.display='none'; Codehighlighter1_108_178_Closed_Image.style.display='inline'; Codehighlighter1_108_178_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_108_178_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_108_178_Closed_Text.style.display='none'; Codehighlighter1_108_178_Open_Image.style.display='inline'; Codehighlighter1_108_178_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">&lt;%</span><span id="Codehighlighter1_108_178_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_108_178_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">@&nbsp;taglib&nbsp;uri</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">http://jakarta.apache.org/struts/tags-html</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;prefix</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">html</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">%&gt;</span><span style="color: rgb(0, 0, 0);"><br><img id="Codehighlighter1_184_247_Open_Image" onclick="this.style.display='none'; Codehighlighter1_184_247_Open_Text.style.display='none'; Codehighlighter1_184_247_Closed_Image.style.display='inline'; Codehighlighter1_184_247_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_184_247_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_184_247_Closed_Text.style.display='none'; Codehighlighter1_184_247_Open_Image.style.display='inline'; Codehighlighter1_184_247_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">&lt;%</span><span id="Codehighlighter1_184_247_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/images/dot.gif"></span><span id="Codehighlighter1_184_247_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">@&nbsp;taglib&nbsp;uri</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">/WEB-INF/framework-struts.tld</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;prefix</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">framework</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 0);">%&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;<br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">html</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;<br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">head</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">title</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">JSP&nbsp;for&nbsp;loginForm&nbsp;form</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">title</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">head</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">body</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">framework:getActionUrl&nbsp;</span><span style="color: rgb(255, 0, 0);">actionName</span><span style="color: rgb(0, 0, 255);">="login"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">html:form&nbsp;</span><span style="color: rgb(255, 0, 0);">action</span><span style="color: rgb(0, 0, 255);">="/login"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">html:text&nbsp;</span><span style="color: rgb(255, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">="name"</span><span style="color: rgb(0, 0, 255);">/&gt;&lt;</span><span style="color: rgb(128, 0, 0);">html:errors&nbsp;</span><span style="color: rgb(255, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">="name"</span><span style="color: rgb(0, 0, 255);">/&gt;&lt;</span><span style="color: rgb(128, 0, 0);">br</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">html:password&nbsp;</span><span style="color: rgb(255, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">="password"</span><span style="color: rgb(0, 0, 255);">/&gt;&lt;</span><span style="color: rgb(128, 0, 0);">html:errors&nbsp;</span><span style="color: rgb(255, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">="password"</span><span style="color: rgb(0, 0, 255);">/&gt;&lt;</span><span style="color: rgb(128, 0, 0);">br</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br><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: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">html:submit</span><span style="color: rgb(0, 0, 255);">/&gt;&lt;</span><span style="color: rgb(128, 0, 0);">html:cancel</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">html:form</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">body</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">html</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"></span></div><br><br>大家要是有更好的解决方法希望能指正！谢谢！<img src ="http://www.blogjava.net/DenisLing/aggbug/19113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DenisLing/" target="_blank">DenisLing</a> 2005-11-10 13:24 <a href="http://www.blogjava.net/DenisLing/articles/19113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>