快速业务通道

Struts自定义标签的过程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

Struts自定义标签的过程

时间:2011-03-20

近日体验了一下Eclipse

打开某个jsp页面,页面上的select下拉列表框用Struts自定义标签来完成

1、新建页面:Test.jsp

2、在Web应用的WEB-INF目录下自定义标签TLD文件:TestTag.tld

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib>   <tlibversion>1.0</tlibversion>   <jspversion>1.1</jspversion>   <shortname>dtree</shortname>   <uri>http://jakarta.apache.org/struts/tags-bean</uri>    <tag>    <name>selectResnodes</name>    <tagclass>myWeb.taglib.SelectTag</tagclass>    <bodycontent>empty</bodycontent>    <attribute>      <name>id</name>      <required>true</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <name>nodeslist</name>      <required>true</required>      <rtexprvalue>false</rtexprvalue>    </attribute>    <attribute>      <name>scope</name>      <required>false</required>      <rtexprvalue>false</rtexprvalue>    </attribute>   </tag> </taglib>

3、在myWeb.Action包下定义AbstractResAction.java文件和TestAction.java文件(利用了java的反射机制)

AbstractResAction.java文件:

package myWeb.Action;    import java.lang.reflect.Method;    import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;    import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping;    public abstract class AbstractResAction extends Action { public final ActionForward execute(ActionMapping actionMapping,   ActionForm actionForm, HttpServletRequest httpServletRequest,   HttpServletResponse httpServletResponse) {   String cmd = httpServletRequest.getParameter("actionType"); // 获取参数,其实为函数名   System.out.println("actionType = " + cmd);   if (cmd == null || cmd.equals(""))   return actionMapping.findForward("default");   try {   Method method = this.getClass()    .getMethod(     cmd,new Class[] { ActionMapping.class,      ActionForm.class, HttpServletRequest.class,      HttpServletResponse.class });    // 利用反射机制,调用method方法。而这个method方法是由页面指定的actionType定义的。   return (ActionForward) method.invoke(this, new Object[] {    actionMapping, actionForm, httpServletRequest,    httpServletResponse });   } catch (Exception e) {   e.printStackTrace();   return actionMapping.findForward("default");   } } }    TestAction.java文件:    package myWeb

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号