最近在学习JSP自定义标签,针对嵌套标签,做如下解释
我做的这个标签是一个表格的标签,标签的名字暂且称为<tableTag>,这个标签类似于一个table,下边有一个子标签,暂且称之为<head>,用来表示每一列的标题。
具体的用法如下:
<tableTag>
<head name="name" value="姓名"/>
<head name="sex" value="性别"/>
</tableTag>
但是在做好之后,数据总是不会展示出来,经过排查,原来是执行顺序发生了错误
具体的执行顺序如下:
1.首先会执行父标签的doStartTag
2.再执行子标签的doStartTag
3.执行子标签的doEndTag
4.执行父标签的doEndTag
所以,当子标签需要向父标签传递数据时,应该在父标签的doEndTag方法中进行数据的处理,否则父标签就不会接收到子标签的数据。
相关推荐
- 标签的执行顺序与它们在JSP页面中的出现顺序有关,通常先出现的标签先执行。 - 自定义标签可以结合EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)一起使用,增强表达能力。 通过理解...
2. **执行**:接着,标记处理器会按照预定的生命周期方法(如`doStartTag()`、`doAfterBody()`、`doEndTag()`等)顺序执行,处理标记及其内容。 3. **清理**:完成后,Web容器会调用`release()`方法,释放标记处理器...
5. **Nested标签库**:增强对其他Struts标签的嵌套使用的能力。 #### 二、Struts 标签库的公共特征 所有Struts标签都支持以下公共属性: - **id**:命名自定义标签创建时的脚本变量名。 - **name**:指出关键字值...
Struts是一个著名的Java Web开发框架,它提供了丰富的标签库来简化开发者的工作,使得在JSP页面上处理业务逻辑和展示数据变得更加便捷。本篇文章主要关注的是Struts1中的HTML标签库,它是Struts中用于创建与框架交互...
网页还能通过页面指令来包含JavaBeans或使用用户自定义的标签库。 ##### 2.2 无限级分类目录树的概念 无限级分类目录树是指在显示具有层级关系的数据时,不限制层级的数量,可以根据数据的深度自动展开相应的层级...
- **自定义标签类**: 标签类应继承`javax.servlet.jsp.tagext.TagSupport`类或`javax.servlet.jsp.tagext.SimpleTagSupport`类,并实现相应的生命周期方法。 - **定义TLD文件**: TLD (Tag Library Descriptor) 文件...
- XML允许自定义标签,但标签名区分大小写。 2. **DOM解析模型** - DOM(Document Object Model)是一种树状结构,用于表示XML或HTML文档,提供了一系列的方法和接口,使得开发者可以通过编程方式访问、修改文档...
HTML标签嵌套必须正确,所有标签必须闭合,自定义属性应以"data-"为前缀。使用语义化的HTML标签,如h1-h6用于标题,p用于段落,ul用于列表等。尽量减少div的嵌套层数,避免使用内嵌样式表,以背景形式呈现的图片写入...
6. **属性顺序**:建议按自身属性、布局定位属性、文本属性和其他属性的顺序书写,同类属性放在一起。 这些规范有助于创建整洁、高效、易于维护的前端代码,从而提高整个项目开发的效率和质量。在实践中,开发人员...
EL表达式支持调用自定义的Java方法,这为在JSP页面中执行复杂的逻辑提供了灵活性。具体实现方式是通过自定义EL函数,然后在EL表达式中调用这些方法。 #### 五、总结 EL表达式是JSP页面中一种非常实用的技术,它...
27. **Python数据结构**:Python中二维数组可以用列表嵌套列表实现,结构体类似地用字典表示,结构体数组则是一个包含多个字典的列表,链表可以自定义实现,也可以使用内置的`collections.deque`类模拟。 以上就是...
4.4.3 标签语句 4.5 返回语句 4.6 综合实例:水仙花数 4.7 本章习题 第5章 字符串 5.1 字符串简介 5.1.1 字符串常量 5.1.2 String创建字符串常量 5.1.3 StringBuffer创建字符串 5.2 连接字符串 5.2.1 与...
20. **代码复用**:通过JSP包含指令(`<jsp:include>`)和自定义标签(TagLib)实现代码的复用。 21. **异常处理**:在JSP中使用`<error-page>`标签配置错误页面,提供友好的错误提示。 22. **JavaScript模块化**...
- **自定义拦截器**:可以根据实际需求自定义拦截器,实现特定的逻辑处理。 #### 七、值栈和OGNL - **值栈**:Struts2使用值栈来管理请求生命周期中的数据。它是Struts2的核心特性之一,用于存储Action、FormBean...
11. **继承时类的执行顺序**: - 初始化顺序:静态变量(父类->子类)、构造器(子类->父类)。 12. **内部类的实现方式**: - 成员内部类、局部内部类、匿名内部类和静态内部类。 13. **实现序列化的方法**: ...
生成的 URL 中包含这个 member 的唯一名称,这个标签必须要在一个 table 或一个 query 的标签里嵌套使用。 这个动作还依赖于该标签的 sessionParam 属性,如果该属性存在,那么参数值将在页面显示之前写到 ...
14. 栈的出栈顺序:栈遵循后进先出(LIFO)原则,所以元素出栈顺序是EDCBA54321。 15. VFP命令:在VFP中,使用AVERAGE命令时,需要先用COPYSTRUCTURETO命令建立索引。 16. 主存储器:硬盘并不属于主存储器,主...