页面引用:
<%@ 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;
}
}
分享到:
相关推荐
如果预定义的标签无法满足需求,可以创建自定义标签。这涉及到编写一个标签库描述文件(TLD),定义标签的行为,并实现对应的Java类来处理标签逻辑。 5. **使用Struts2标签的优点** - 提高可读性和可维护性:标签...
5. **17**:可能涉及JSP的自定义标签开发,这需要了解TLD(Tag Library Descriptor)文件的编写和自定义标签类的实现。通过自定义标签,开发者可以创建更符合业务逻辑的定制化组件,提高代码的可读性和可维护性。 6...
从JSP 1.1规范开始,JSP就支持在页面中使用自定义标签。然而,随着项目的扩大和复杂度的增加,这种自定义标签的使用导致了许多重复的工作,这促使了JSTL的出现和发展。JSTL由Apache的Jakarta小组维护,旨在提供一套...
总的来说,这个"一个Jsp弹出窗口"项目展示了一个结合了JSP后端处理能力和前端JavaScript交互的实例,通过自定义的弹出窗口组件实现了动态提示的功能。这涉及到HTML布局、CSS美化、JavaScript交互和JSP的服务器端逻辑...
- **taglib指令**:`别名" uri="URI"%>`,引入自定义标签库。 ### 5. 动作元素 动作元素是JSP的一种高级特性,用于控制页面的行为,而不是简单的文本输出。比如: - `<jsp:include page="页面路径" flush="true"/...
3. 引入TLD到JSP页面:在JSP页面中,我们需要通过`@taglib`指令引入TLD,这样就可以使用自定义标签了。例如: ```jsp ``` 接下来,就可以在JSP页面中使用自定义的`OptionDictionary`标签了,如下所示: ```jsp...
1. **指令**(Directives):比如`<%@ page %>`、`<%@ include %>`和`<%@ taglib %>`,用于配置页面属性、引入其他文件或注册自定义标签库。 2. **脚本片段**(Scriptlets):以`<%...%>`包裹的Java代码,通常用于...
指令如page、include、taglib,用于配置页面属性、包含其他文件或引入自定义标签库;动作元素如jsp:useBean、jsp:setProperty等,用于实例化Java Bean并设置其属性。这些内容将在PPT中通过实例进行详尽解释。 此外...
指令如`<%@ page %>`, `<%@ include %>`, `<%@ taglib %>`用于配置页面属性、引入其他文件或注册自定义标签库。动作如`<jsp:include>`, `<jsp:forward>`, `<jsp:useBean>`等用于控制页面流程。脚本元素包括声明...
JSP标签库(Tag Libraries)是JSP的重要特性,它允许开发者创建自定义标签来简化代码,提高可读性和可维护性。比如,JSTL(JavaServer Pages Standard Tag Library)库包含了用于处理流程控制、I/O、XML等任务的...
它们用于配置整个JSP页面的属性,引入其他文件或注册自定义标签库。 3. **JSP动作**:如`<jsp:include>`, `<jsp:forward>`, `<jsp:param>`等,它们控制页面的流程和数据传递。 4. **JSP脚本元素**:包括`...
3. **JSP指令**:详细解释`<%@ page>`、`<%@ include>`和`<%@ taglib>`指令,它们在页面配置和引入自定义标签库中的作用。 4. **内置对象**:阐述九个内置对象,如`request`、`response`、`session`、`application`...
例如,正确的`<html:link>`标签写法是`<html:link href="'<%= "/" + name + "/index.jsp"'>`。 了解并熟练使用Struts1的这些标签库,可以帮助开发者更高效地构建动态Web应用,减少代码量,提高开发效率。在实际应用...
**JSP的进阶主题** 包括自定义标签库、JSP的异常处理、国际化与本地化、JSP的生命周期和作用域、JSP与Ajax的结合使用等。深入学习这些内容,可以提高JSP开发的效率和质量。 通过阅读《JSP高级编程(希望版)》,你...
- 复用指令(Taglib Directive):`<%@ taglib %>`, 引入自定义标签库。 4. **JSP动作元素** - JSP动作元素以`<jsp:*>`形式存在,如`<jsp:include>`, `<jsp:forward>`, `<jsp:param>`等,用于控制页面流程和处理...
标签的公共特性,如`styleId`定义自定义标签的脚本变量名,`name`和`property`用于访问Bean,`scope`定义Bean的查找范围。对于具有`property`属性的标签,如`<text>`、`<hidden>`、`<textarea>`、`<radio>`、`...
### OCWCD 学习资料知识点解析 #### 标题:OCWCD 学习资料 **OCWCD**(Oracle Certified ...以上内容涵盖了OCWCD认证考试中关于JSP文档声明、JSP代码类型以及自定义标签配置的相关知识点,有助于理解和备考。
这行代码指示JSP解析器识别并使用以"s"为前缀的Struts2自定义标签。 ### 1. 单选框 `<s:radio>` 单选框在表单中用于让用户从一组预定义的选项中选择一个。下面是一个 `<s:radio>` 标签的基本结构和属性的解释: `...
例如,正确的写法是`<html:link href="'<%= "/" + name + "/index.jsp" %>'>`。另外,`<html:img>`标签用于插入图片,需要指定`page`属性来定义图片路径,还可以通过`height`和`width`设置尺寸,`alt`属性提供替代...
在JSP中,`Taglib`指令用于指定一个自定义标签库的位置。例如: ```jsp ``` ### 隐形注释 在JSP中,可以使用`注释 --%>`来进行隐形注释。这种类型的注释不会出现在最终生成的HTML源代码中,只在服务器端可见。 #...