`

jsp自定义标签写法

阅读更多
页面引用:
<%@ taglib uri="/WEB-INF/abc.tld" prefix="aa" %>
...
<aa:mytag .../>



tld:
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0">
	<tlib-version>1.0</tlib-version>
	
	<tag>
		<name>adv</name>
		<tagclass>com.mb.util.Advertisement</tagclass>
		<attribute>
			<name>placeId</name>
			<required>true</required>
		</attribute>
	</tag>
</taglib>

java:
public class Advertisement extends TagSupport {

	/**  */
	private static final long serialVersionUID = -1701876066227050270L;
	/** 广告位ID */
	private String placeId;

	public int doEndTag() throws JspException {
		String path = pageContext.getServletContext().getRealPath("/");
		Long cityID = ((City) pageContext.getSession().getAttribute("city")).getId();
		cityID = 1L;
		// 得到广告位id
		AdvdeployDAO dao = (AdvdeployDAO) BeanProxy.getBean("advDeployDAO");
		AdvDeploy advdeploy = dao.getAdvdeploy("" + cityID, placeId, "0");
		StringBuilder sb = new StringBuilder();
		String advStr = "";
		if (advdeploy != null) {
			Adv adv = advdeploy.getAdv();
			String advalt = "";
			String imgurl = "";
			Long advid = 0L;
			if (adv != null) {
				advalt = adv.getAlt();
				imgurl = adv.getImgurl();
				advid = adv.getId();
			}

			// 根据位置查看是不是滚动广告
			Advplace ap = advdeploy.getPc().getAdvplace();
			if (imgurl.endsWith(".swf")) {
				sb.append("<embed src='#path#imgurl' width='#width' height='#height'/>");
			} else {
				sb.append("<a href='#path/updateAdvClickNum.mb?id=#id&cityID=#cityID' target='_blank'>");
				sb.append("<img alt='#alt' src='#path#imgurl' width='#width' height='#height'/>");
				sb.append("</a>");
			}
			advStr = sb.toString();
			advStr = advStr.replace("#id", advid + "");
			advStr = advStr.replace("#cityID", cityID + "");
			advStr = advStr.replace("#alt", advalt);
			advStr = advStr.replace("#path", path);
			advStr = advStr.replace("#imgurl", imgurl);
			advStr = advStr.replace("#width", ap.getWidth() + "");
			advStr = advStr.replace("#height", ap.getHeight() + "");

		}
		JspWriter jw = pageContext.getOut();
		try {
			jw.println(advStr);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}

	/**
	 * @return the placeId
	 */
	public String getPlaceId() {
		return placeId;
	}

	/**
	 * @param placeId the placeId to set
	 */
	public void setPlaceId(String placeId) {
		this.placeId = placeId;
	}

}
分享到:
评论
1 楼 xiangyufangai 2010-06-02  

    好文章!

相关推荐

    struts2标签写法

    如果预定义的标签无法满足需求,可以创建自定义标签。这涉及到编写一个标签库描述文件(TLD),定义标签的行为,并实现对应的Java类来处理标签逻辑。 5. **使用Struts2标签的优点** - 提高可读性和可维护性:标签...

    JSP宝典-源代码16-26

    5. **17**:可能涉及JSP的自定义标签开发,这需要了解TLD(Tag Library Descriptor)文件的编写和自定义标签类的实现。通过自定义标签,开发者可以创建更符合业务逻辑的定制化组件,提高代码的可读性和可维护性。 6...

    JSP网页编程JSTL标签

    从JSP 1.1规范开始,JSP就支持在页面中使用自定义标签。然而,随着项目的扩大和复杂度的增加,这种自定义标签的使用导致了许多重复的工作,这促使了JSTL的出现和发展。JSTL由Apache的Jakarta小组维护,旨在提供一套...

    一个Jsp弹出窗口

    总的来说,这个"一个Jsp弹出窗口"项目展示了一个结合了JSP后端处理能力和前端JavaScript交互的实例,通过自定义的弹出窗口组件实现了动态提示的功能。这涉及到HTML布局、CSS美化、JavaScript交互和JSP的服务器端逻辑...

    JSP语法详解(基本构成和语句的写法)

    - **taglib指令**:`别名" uri="URI"%&gt;`,引入自定义标签库。 ### 5. 动作元素 动作元素是JSP的一种高级特性,用于控制页面的行为,而不是简单的文本输出。比如: - `&lt;jsp:include page="页面路径" flush="true"/...

    Struts2 自定义下拉框Tag标签

    3. 引入TLD到JSP页面:在JSP页面中,我们需要通过`@taglib`指令引入TLD,这样就可以使用自定义标签了。例如: ```jsp ``` 接下来,就可以在JSP页面中使用自定义的`OptionDictionary`标签了,如下所示: ```jsp...

    JSP网络编程从基础到实践

    1. **指令**(Directives):比如`&lt;%@ page %&gt;`、`&lt;%@ include %&gt;`和`&lt;%@ taglib %&gt;`,用于配置页面属性、引入其他文件或注册自定义标签库。 2. **脚本片段**(Scriptlets):以`&lt;%...%&gt;`包裹的Java代码,通常用于...

    jsp程序设计配套ppt

    指令如page、include、taglib,用于配置页面属性、包含其他文件或引入自定义标签库;动作元素如jsp:useBean、jsp:setProperty等,用于实例化Java Bean并设置其属性。这些内容将在PPT中通过实例进行详尽解释。 此外...

    JSP网络开发技术与整合应用.iso(随书光盘2)

    指令如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`用于配置页面属性、引入其他文件或注册自定义标签库。动作如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:useBean&gt;`等用于控制页面流程。脚本元素包括声明...

    JSP实用编程实例集锦(PDG).rar )

    JSP标签库(Tag Libraries)是JSP的重要特性,它允许开发者创建自定义标签来简化代码,提高可读性和可维护性。比如,JSTL(JavaServer Pages Standard Tag Library)库包含了用于处理流程控制、I/O、XML等任务的...

    JSP快速入门-html文档

    它们用于配置整个JSP页面的属性,引入其他文件或注册自定义标签库。 3. **JSP动作**:如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等,它们控制页面的流程和数据传递。 4. **JSP脚本元素**:包括`...

    jsp参考资料2

    3. **JSP指令**:详细解释`&lt;%@ page&gt;`、`&lt;%@ include&gt;`和`&lt;%@ taglib&gt;`指令,它们在页面配置和引入自定义标签库中的作用。 4. **内置对象**:阐述九个内置对象,如`request`、`response`、`session`、`application`...

    struts1的标签

    例如,正确的`&lt;html:link&gt;`标签写法是`&lt;html:link href="'&lt;%= "/" + name + "/index.jsp"'&gt;`。 了解并熟练使用Struts1的这些标签库,可以帮助开发者更高效地构建动态Web应用,减少代码量,提高开发效率。在实际应用...

    JSP高级编程(希望版)

    **JSP的进阶主题** 包括自定义标签库、JSP的异常处理、国际化与本地化、JSP的生命周期和作用域、JSP与Ajax的结合使用等。深入学习这些内容,可以提高JSP开发的效率和质量。 通过阅读《JSP高级编程(希望版)》,你...

    jsp 实用教程(第二版)程序源代码

    - 复用指令(Taglib Directive):`&lt;%@ taglib %&gt;`, 引入自定义标签库。 4. **JSP动作元素** - JSP动作元素以`&lt;jsp:*&gt;`形式存在,如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等,用于控制页面流程和处理...

    struts1标签中文详解

    标签的公共特性,如`styleId`定义自定义标签的脚本变量名,`name`和`property`用于访问Bean,`scope`定义Bean的查找范围。对于具有`property`属性的标签,如`&lt;text&gt;`、`&lt;hidden&gt;`、`&lt;textarea&gt;`、`&lt;radio&gt;`、`...

    OCWCD 学习资料

    ### OCWCD 学习资料知识点解析 #### 标题:OCWCD 学习资料 **OCWCD**(Oracle Certified ...以上内容涵盖了OCWCD认证考试中关于JSP文档声明、JSP代码类型以及自定义标签配置的相关知识点,有助于理解和备考。

    struts2标签学习笔记

    这行代码指示JSP解析器识别并使用以"s"为前缀的Struts2自定义标签。 ### 1. 单选框 `&lt;s:radio&gt;` 单选框在表单中用于让用户从一组预定义的选项中选择一个。下面是一个 `&lt;s:radio&gt;` 标签的基本结构和属性的解释: `...

    struts标签

    例如,正确的写法是`&lt;html:link href="'&lt;%= "/" + name + "/index.jsp" %&gt;'&gt;`。另外,`&lt;html:img&gt;`标签用于插入图片,需要指定`page`属性来定义图片路径,还可以通过`height`和`width`设置尺寸,`alt`属性提供替代...

    javaweb习题.docx

    在JSP中,`Taglib`指令用于指定一个自定义标签库的位置。例如: ```jsp ``` ### 隐形注释 在JSP中,可以使用`注释 --%&gt;`来进行隐形注释。这种类型的注释不会出现在最终生成的HTML源代码中,只在服务器端可见。 #...

Global site tag (gtag.js) - Google Analytics