﻿<?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-一水空间</title><link>http://www.blogjava.net/0yishui/</link><description>生命短暂，道也漫长</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 15:03:45 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 15:03:45 GMT</pubDate><ttl>60</ttl><item><title>反射练习之action消除execute方法</title><link>http://www.blogjava.net/0yishui/archive/2009/12/15/306058.html</link><dc:creator>秒速4键</dc:creator><author>秒速4键</author><pubDate>Tue, 15 Dec 2009 11:52:00 GMT</pubDate><guid>http://www.blogjava.net/0yishui/archive/2009/12/15/306058.html</guid><wfw:comment>http://www.blogjava.net/0yishui/comments/306058.html</wfw:comment><comments>http://www.blogjava.net/0yishui/archive/2009/12/15/306058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/0yishui/comments/commentRss/306058.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/0yishui/services/trackbacks/306058.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt"><span style="color: #0000ff"><span style="font-size: 10pt">/** <br />
&nbsp;* @author yzy<br />
&nbsp;* 作为BaseAction 供其他Action 继承， 其他Action 不需要写execute(mapping, form, request, response)<br />
&nbsp;* 方法，直接写与mapping.getParameter()[struts-xml 的&lt;action&gt; 中parameter] 对应的 方法名(mapping, form, request, response)方法；<br />
&nbsp;* <br />
&nbsp;* 或者mapping.getPath()[struts-xml 的&lt;action&gt; 中path] 固定写为 method_0，直接写与mapping.getParameter()对应的 <br />
&nbsp;* 方法名（String ... str）方法<br />
&nbsp;*/</span></span><br />
<span style="color: #c0c0c0">@Override</span><br />
&nbsp;public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;actionForward = mapping.findForward("forward");<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if("method_0".equals(mapping.getPath())){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method_0(mapping, form, request, response);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">&nbsp;// 正常Struts 方法名（ActionMapping mapping, ActionForm form,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest request, HttpServletResponse response）</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.getClass().getMethod(mapping.getParameter(), ActionMapping.class, ActionForm.class,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest.class, HttpServletResponse.class).invoke(this,&nbsp;mapping, form, request, response);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println("no serach method");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return actionForward;<br />
&nbsp;}<br />
<span style="color: #008000">&nbsp;/*<br />
&nbsp; * 方法名（String ... str）<br />
&nbsp; */<br />
</span>&nbsp;private void method_0(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String param = request.getQueryString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[] params = param.split("&amp;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int len = params.length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class[] classes = new Class[len - 1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i = 0; i &lt; len; i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classes[i] = String.class;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.getClass().getMethod(mapping.getParameter(), classes).invoke(this, params);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println("no serach method"); <span style="color: #008000">// str[] 可能参数个数不一致<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;}</span> 
<img src ="http://www.blogjava.net/0yishui/aggbug/306058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/0yishui/" target="_blank">秒速4键</a> 2009-12-15 19:52 <a href="http://www.blogjava.net/0yishui/archive/2009/12/15/306058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>