引用
定义我们的业务处理类
package org.cc.taglib;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class ShowDialog extends TagSupport {
private String contents;
//http://blog.csdn.net/tim_zhang8888/article/details/3960822
//SKIP_BODY (0) :跳过了开始和结束标签之间的代码。
//EVAL_BODY_INCLUDE(1):将body的内容输出到存在的输出流中
//SKIP_PAGE(5): 忽略剩下的页面。
//EVAL_PAGE隐含(6):继续执行下面的页
public int doStartTag() throws JspException {
JspWriter jwo = pageContext.getOut();//得到页面输出流
try{
StringBuffer sbf = new StringBuffer();
sbf.delete(0, sbf.length());
if(null != contents && "".equals(contents)){
sbf.append("<style type='text/css'>");
sbf.append(".show_box_layout{text-align:center;z-index:999;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#DCDCDC;visibility:visible;filter:Alpha(opacity=50);/**IE**/opacity:0.5;/**standard**/-moz-opacity:0.5;/**firefox**/}");
sbf.append(".show_box_dialog{float:left;position:relative;left:50%;top:50%;margin-left:-125px;margin-top:-80px;width:250px;height:160px;text-align:center;background-color:#808080;border:1px solid #6699FF;font-family:Verdana;font-size:15px;}");
sbf.append(".show_box_title{float:left;position:relative;text-align:left;text-indent:5px;margin:5px 5px;padding:4px 0px;background-color:#c0c0c0;width:240px;height:25px;}");
sbf.append(".show_box_content{float:left;position:relative;text-align:left;margin:2px 10px 2px 10px;width:230px;height:100px;background-color:#c0c0c0;line-height:15px;text-indent:20px;font-family:Verdana;font-size:15px;}");
sbf.append("</style>");
sbf.append("<div class='show_box_layout'>");
sbf.append("<div class='show_box_dialog'>");
sbf.append("<div class='show_box_title'>Tips</div>");
sbf.append("<div class='show_box_content'>");
sbf.append(contents);//内容
sbf.append("</div>");
sbf.append("</div></div>");
}else{
sbf.append("<style type='text/css'>");
sbf.append(".show_box_layout{text-align:center;z-index:999;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#DCDCDC;visibility:visible;filter:Alpha(opacity=50);/**IE**/opacity:0.5;/**standard**/-moz-opacity:0.5;/**firefox**/}");
sbf.append(".show_box_dialog{float:left;position:relative;left:50%;top:50%;margin-left:-125px;margin-top:-80px;width:250px;height:160px;text-align:center;background-color:#808080;border:1px solid #6699FF;font-family:Verdana;font-size:15px;}");
sbf.append(".show_box_title{float:left;position:relative;text-align:left;text-indent:5px;margin:5px 5px;padding:4px 0px;background-color:#c0c0c0;width:240px;height:25px;}");
sbf.append(".show_box_content{float:left;position:relative;text-align:left;margin:2px 10px 2px 10px;width:230px;height:100px;background-color:#c0c0c0;line-height:15px;text-indent:20px;font-family:Verdana;font-size:15px;}");
sbf.append("</style>");
sbf.append("<div class='show_box_layout'>");
sbf.append("<div class='show_box_dialog'>");
sbf.append("<div class='show_box_title'>Tips</div>");
sbf.append("<div class='show_box_content'>");
sbf.append("Maybe you can be NO.1.");//内容
sbf.append("</div>");
sbf.append("</div></div>");
}
分享到:
相关推荐
2. **注册标签处理类**:在MyBatis的配置文件(mybatis-config.xml)中,我们需要将自定义标签处理类添加到`typeAliases`中,并声明对应的标签名称。这样MyBatis在解析XML时就能识别我们的自定义标签。 ```xml .....
二、自定义标签的优点 1. 提高代码可读性:自定义标签将复杂的业务逻辑封装起来,使得HTML页面更易于理解和维护。 2. 降低视图与控制层耦合:标签将处理逻辑从JSP页面中移出,使得两者职责分明,更符合MVC设计模式。...
2. **创建自定义标签** 在ThinkPHP 3.0中,自定义标签通常在`TagLib`类库下创建。首先,你需要在`ThinkPHP/Lib/TagLib`目录下创建一个新的PHP文件,例如`XyTagLib.php`,然后在这个文件中定义一个继承自`Think\...
2. **实现标签处理类**:创建一个Java类来实现自定义标签的行为。这个类需要继承`javax.servlet.jsp.tagext.TagSupport`或实现`javax.servlet.jsp.tagext.Tag`接口。在`doStartTag()`和`doEndTag()`方法中编写处理...
3. 使用自定义标签:在模板文件中,你可以像使用内置标签一样使用你的自定义标签。例如,如果你注册了一个名为`myCustomTag`的自定义指令,你可以在模板中这样使用:`<@myCustomTag param1="value1" param2="value2...
**二、自定义标签函数** 自定义标签函数是在JSP 2.0中引入的一种新的特性,它允许开发者像使用EL(Expression Language)函数一样使用自定义功能。这些函数通常封装了一些简单但常用的操作,比如字符串处理、日期...
在"spring自定义标签例子"这个项目中,我们可以深入理解这一特性,特别是通过Chapter2工程的实例来学习。 Spring框架的自定义标签通常用于简化XML配置,提升可读性和可维护性。这些标签是基于Java的`org.spring...
二、创建自定义标签库 1. 创建 Tag 类:首先,我们需要创建一个 Java 类,该类继承自 `org.apache.struts.taglib.Tag` 或其子类,例如 `org.apache.struts.taglib.bean.WriteTag`。在这个类中,我们将定义标签的...
二、自定义标签简介 2.1 自定义标签概念 自定义标签是JSP的一种扩展,它允许开发者定义自己的标签库,实现特定的功能,这些标签可以在多个JSP页面中重复使用,提高代码复用率。 2.2 标签相关概念 自定义标签通常由...
2. **实现标签处理类(Tag Handler)**:每个自定义标签对应一个Java类,该类需要实现`javax.servlet.jsp.tagext.Tag`或其子接口,如`SimpleTag`。在这个类中,我们可以编写处理标签逻辑的代码。 3. **在JSP页面中...
2. **创建自定义标签** 创建自定义标签需要两个主要部分:Java类实现和模板定义。Java类通常继承`freemarker.template.TemplateDirectiveModel`接口,并重写`execute`方法。模板定义则是在`.ftl`文件中使用`...
2. **标签处理类(Tag Handler Class)**:每个自定义标签对应一个Java类,这个类实现了`javax.servlet.jsp.tagext.Tag`接口或其子接口,负责处理标签的生命周期方法,如`doStartTag()`、`doEndTag()`等。...
自定义标签是Struts2框架中的一个重要特性,它允许开发者创建自己的标签库,以更直观、易读的方式在JSP页面中处理业务逻辑。下面将详细介绍Struts2自定义标签的相关知识点。 首先,理解自定义标签的作用。在传统的...
一个“自定义标签”是开发者为了扩展JSP(JavaServer Pages)功能而创建的,它允许我们封装复杂逻辑并将其作为可重用的组件。本项目提供了一个用于分页的自定义标签,适用于那些需要在网页上进行数据分页展示的应用...
2. **浏览器兼容性**:虽然HTML5的大部分现代浏览器都支持自定义标签,但老版本的IE(尤其是IE9及以下)可能不支持。为确保跨浏览器兼容,可以使用JavaScript库如polyfill或使用Web Components技术(如Shadow DOM、...
2. **注册自定义标签**:在应用启动时,你需要将这个Java类注册到Freemarker的配置中,这样Freemarker在解析模板时就能识别并执行自定义标签。 例如,假设我们有一个名为`<@myTag>`的自定义标签,它接受一个参数`...
二、自定义标签的工作原理 1. 解析阶段:当JSP引擎遇到自定义标签时,会查找对应的Tag Library Descriptor (TLD) 文件,该文件定义了标签的属性、事件和行为。 2. 执行阶段:根据TLD中的配置,JSP引擎实例化一个标签...
2. **定义标签映射**:创建一个数组`mk`来存储自定义标签与对应的HTML标签样式。每个自定义标签与其对应的开始标签和结束标签一一对应。 3. **定义转换逻辑**: - 获取`body`元素的内联HTML内容。 - 遍历自定义...
在Struts2中,自定义标签的实现是提升可重用性和简化视图层代码的一个重要特性。下面我们将深入探讨如何在Struts2中实现自定义标签,以及其背后的原理。 自定义标签的创建主要涉及以下三个步骤: 1. **创建taglib...
自定义标签是JSP(JavaServer Pages)技术中非常重要的一个概念,它允许开发者通过简化的方式来编写可复用的代码段,从而增强JSP页面的可读性和可维护性。本篇文章将深入讲解自定义标签的使用、实现原理以及开发过程...