### 自定义通用增修删标签知识点 #### 一、概览 在软件开发过程中,特别是Web应用程序中,经常需要创建一些具有通用功能的组件或模块,以提高代码复用率和开发效率。其中,“增修删”操作是最常见的业务逻辑之一。通过自定义通用增修删标签,可以方便地在不同的项目或页面中重复使用这些操作,从而简化前端界面的设计与实现。 #### 二、自定义标签的概念 自定义标签(Custom Tag)是JavaServer Pages (JSP) 技术中的一项重要特性,它允许开发者创建可重用的代码片段,这些代码片段可以在多个JSP页面中被调用。自定义标签通常封装了特定的功能或逻辑,使得开发者能够以声明式的方式使用它们,而无需在每个页面中编写相同的代码。 #### 三、自定义增修删标签开发流程 ##### 1. 定义标签处理实现类 根据提供的部分代码,可以看到一个名为`MenuButton`的类,该类继承自`SimpleTagSupport`。这个类的主要作用是处理自定义标签的行为。 - **包名**: `com.lyx.tags` - **类名**: `MenuButton` ```java public class MenuButton extends SimpleTagSupport { private String add; private String del; private String save; private String edit; // Getter 和 Setter 方法 // ... public void doTag() throws JspException, IOException { JspWriter out = getJspContext().getOut(); StringBuffer buttonHTML = new StringBuffer(); // 构建 HTML 表格结构 buttonHTML.append("<table width=\"100%\" height=\"25\" class=\"ToolBar\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr>"); // 添加“返回”按钮 buttonHTML.append("<td><button id=\"back\" onclick=\"javaScript:history.back(-1);\" ACCESSKEY=\"B\" title=\"返 回\"><img border=\"0\" src=\"../image/button/back.png\" align=\"absbottom\"/>返回 (<SPAN style=\"text-decoration:underline;\">B</SPAN>)</button></td>"); // 增加按钮逻辑 if (add != null) { buttonHTML.append("<td><button onclick=\"").append(add).append("\" ACCESSKEY=\"N\" title=\"增加\"><img border=\"0\" src=\"../image/button/new.png\" align=\"absbottom\" />增加 (<SPAN style=\"text-decoration:underline;\">N</SPAN>)</button></td>"); } else { buttonHTML.append("<td><button ACCESSKEY=\"N\" title=\"增加\" disabled=\"disabled\"><img border=\"0\" src=\"../image/button/new.png\" align=\"absbottom\" />增加 (<SPAN style=\"text-decoration:underline;\">N</SPAN>)</button></td>"); } // 编辑按钮逻辑 if (edit != null) { buttonHTML.append("<td><button onclick=\"").append(edit).append("\" ACCESSKEY=\"E\" title=\"编辑\"><img border=\"0\" src=\"../image/button/edit.png\" align=\"absbottom\" />编辑 (<SPAN style=\"text-decoration:underline;\">E</SPAN>)</button></td>"); } else { buttonHTML.append("<td><button ACCESSKEY=\"E\" title=\"编辑\" disabled=\"disabled\"><img border=\"0\" src=\"../image/button/edit.png\" align=\"absbottom\" />编辑 (<SPAN style=\"text-decoration:underline;\">E</SPAN>)</button></td>"); } // 删除按钮逻辑 if (del != null) { buttonHTML.append("<td><button onclick=\"").append(del).append("\" ACCESSKEY=\"D\" title=\"删除\"><img border=\"0\" src=\"../image/button/delete.png\" align=\"absbottom\" />删除 (<SPAN style=\"text-decoration:underline;\">D</SPAN>)</button></td>"); } else { buttonHTML.append("<td><button ACCESSKEY=\"D\" title=\"删除\" disabled=\"disabled\"><img border=\"0\" src=\"../image/button/delete.png\" align=\"absbottom\" />删除 (<SPAN style=\"text-decoration:underline;\">D</SPAN>)</button></td>"); } // 保存按钮逻辑 if (save != null) { buttonHTML.append("<td><button onclick=\"").append(save).append("\" ACCESSKEY=\"S\" title=\"保存\"><img border=\"0\" src=\"../image/button/save.png\" align=\"absbottom\" />保存 (<SPAN style=\"text-decoration:underline;\">S</SPAN>)</button></td>"); } else { buttonHTML.append("<td><button ACCESSKEY=\"S\" title=\"保存\" disabled=\"disabled\"><img border=\"0\" src=\"../image/button/save.png\" align=\"absbottom\" />保存 (<SPAN style=\"text-decoration:underline;\">S</SPAN>)</button></td>"); } // 结束 HTML 表格结构 buttonHTML.append("</tr></table>"); // 输出 HTML 内容 out.print(buttonHTML.toString()); } } ``` 以上代码展示了如何根据传入的参数动态生成包含增修删按钮的HTML内容。当某个操作可用时(例如:`add` 不为 `null`),则会生成一个可点击的按钮;如果不可用,则生成一个禁用状态的按钮。 #### 四、使用自定义标签 要在 JSP 页面中使用这个自定义标签,首先需要在页面顶部声明标签库: ```jsp <%@ taglib uri="/WEB-INF/mytags.tld" prefix="mytags" %> ``` 然后就可以在页面中像使用内置标签一样使用这个自定义标签了: ```jsp <mytags:menuButton add="doAdd()" del="doDelete()" save="doSave()" edit="doEdit()" /> ``` #### 五、总结 自定义通用增修删标签能够有效地提高Web项目的开发效率和维护性。通过封装常见的增修删操作,不仅简化了页面设计,还提高了代码的复用性。开发者可以根据实际需求调整这些标签的功能和样式,使其更好地适应不同的应用场景。
- 粉丝: 8
- 资源: 41
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- training_plan_db.sql
- 2c4f3adc7be59975e81fa0c1f24cb6ea.JPG
- python爬虫入门,分享给有需要的人,仅供参考
- 722bf4c3ee17fa231ad9efcb12407aa0.JPG
- 15da2b5d3ceeddc8af2f6a7eed26d7e0.JPG
- 7ae59002be36a13ad6de32c4e633a196.JPG
- spark中文文档,spark操作手册以及使用规范
- WPF-Halcon算法平台,类似于海康威視VisionMater.zip
- Fake Location,可用来王者荣誉修改战区及企业微信定位打卡等
- the fire level NULL