第一个事例:
简单的jsp自定标签获取内容:
首先创建一个jsp实例类然后继承SimpleTagSupport类
然后实现父类的doTag()方法
在这个方法里获取标签体里的内容this.getJspBody();
返回的是JspFragment类,根据这个类对象调用invoke(this.getJspContext().getOut());
这个方法里面也可以写空,所表达的意思也是输出到浏览器;
publicclassSimpleDmeo1extendsSimpleTagSupport{
@Override
publicvoiddoTag()throwsJspException,IOException{
JspFragmentjs=this.getJspBody();
js.invoke(null);
}
}
然后在写tld文件标签库描述文件,和jsp文件,这些都较为简单
如果不想执行某个内容就抛出异常
thrownewskipPageException();和面内容就不会显示
接下来是一个带属性的jsp自定义标签文件
publicclassSimpleDmeo1extendsSimpleTagSupport{
privateintcounts;
publicvoidsetCounts(intcounts){
this.counts=counts;
}
@Override
publicvoiddoTag()throwsJspException,IOException{
JspFragmentjs=this.getJspBody();
for(inti=0;i<counts;i++){//循环获取
js.invoke(null);
}
}
}
<description>AtaglibraryexercisingSimpleTaghandlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>c</short-name>前缀名
<uri>http://www.csdn.com</uri>
<tag>
<name>demo</name>
<tag-class>com.csdn.simple.SimpleDmeo1</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>counts</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
然后再jsp文件中写出内容;
<hbsi:democounts="3">aaaaaaa<br/></hbsi:demo>//输出三编
JspFragmentjs=this.getJspBody();
StringWriterjw=newStringWriter();
js.invoke(jw);
Strings=jw.toString().toUpperCase();
JspWriterout=this.getJspContext().getOut();
for(inti=0;i<counts2;i++){
out.print(s);
}
}
这是转成大写的代码,其他的都一致;
关于ifelse的代码,太多,我放到资源里了,有必要的话可以下载下来,仅供参考。
分享到:
相关推荐
本篇文章将探讨如何创建和使用包含`if-else`逻辑和遍历功能的自定义标签。 首先,我们来看一个简单的自定义标签的例子。创建一个JSP自定义标签实例类,通常会继承`SimpleTagSupport`类。这个类提供了`doTag()`方法...
流程控制标签如<c:if>、、和,使得开发者可以执行条件判断和选择操作,与Java中的if-else和switch-case类似。这些标签使JSP页面的逻辑更加清晰,并有助于减少Java代码的编写。 异常处理在JSP中也是必不可少的。通过...
10. `<s:if>`和`s:else`:条件判断,根据表达式的值决定是否渲染标签内的内容。 11. `<s:property>`:显示模型数据,可以用来输出ActionForm或Action中的属性值。 三、标签使用示例 以下是一个简单的用户登录表单的...
3. `<s:if>`和`<s:else>`:条件判断标签,用于根据表达式的值决定是否执行某个部分的代码。 4. `<s:iterator>`:迭代标签,用于遍历集合对象,如List、Map等。例如: ```jsp <td><s:property value="username...
【jsp之c标签用法实例分析】 在Java服务器页面(JSP)开发中,JSTL(JavaServer Pages Standard Tag Library)是一个标准标签库,它提供了丰富的标签来简化页面逻辑,减少Java脚本的使用。其中,C标签库是JSTL的...
5. **ifelse标签:** - 提供更复杂的条件判断逻辑。 6. **DynamicAttribute接口:** - 支持传递动态属性的标签。 #### 八、JSP面试题 1. **jsp静态包含和动态包含的区别:** - **静态包含:** 在编译时完成,...
这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...
由于JSP页面可以直接包含Java代码,我们可以在其中创建Servlet实例或使用`<jsp:useBean>`标签。 3. **使用Commons FileUpload库** Apache Commons FileUpload库提供了一套完整的API来处理文件上传。首先,在你的...
在Struts2中,标签库是其核心特性之一,它提供了丰富的预定义标签,使得开发者可以更加方便地在JSP页面中进行逻辑控制和数据显示。本文将深入探讨Struts2的标签体系,包括它们的功能、用法以及如何提高开发效率。 1...
9. `s:if` 和 `s:else`: 条件判断标签,类似于Java的if-else语句。 10. `s:iterator`: 循环标签,常用于遍历集合数据,如List、Map等。 11. `s:include` 和 `s:useBean`: 分别用于包含其他页面和实例化Java Bean。...
- `s:if` 和 `s:else`:条件语句,可以基于OGNL表达式进行判断。 - `s:switch`:多分支选择,根据OGNL表达式的值选择执行的分支。 - `s:include` 和 `s:forward`:用于页面间的跳转和包含,增强页面结构的组织。 ...
### JSP实例详解 #### 一、登录示例 ##### 1. 建立数据库和数据库表 在本示例中,首先需要创建一个名为`jspstu`的数据库,并在此数据库中创建一个名为`tb_user`的表,用于存储用户信息。表结构如下所示: ```sql...
- `<s:if>` 和 `<s:else>`:条件判断标签,用于控制页面元素的显示。 - `<s:iterator>`:迭代标签,用于遍历集合、Map等数据结构,并将其内容渲染到页面。 - `<s:switch>`:类似Java的switch语句,根据表达式的值...
- 这些标签用于在 JSP 页面中进行条件判断,类似 Java 中的 `if`、`else if` 和 `else`。 9. **文件上传标签 `<s:file>`**: - 用于创建文件上传表单字段,处理用户上传的文件。 10. **表单标签 `<s:form>`**: ...
在这个框架中,标签库是核心组件之一,提供了丰富的功能,使得 JSP 页面的编写更为简洁和高效。以下是关于 Struts2.0 常用标签的详细说明: 1. 条件标签: - `<s:if>`、`<s:elseif>` 和 `<s:else>` 标签用于实现...
1. **控制标签**:例如`<s:if>`、`<s:else>`和`<s:switch>`,这些标签用于条件逻辑,与Java的`if-else`语句类似,但它们更符合XML语法,易于在JSP页面中嵌入。 2. **迭代标签**:如 `<s:iterator>`,用于遍历集合...
- SQL标签库:与数据库交互。 - XML标签库:处理XML文档。 - Functions标签库:提供一系列有用的函数。 2. EL表达式(Expression Language) EL是一种轻量级的表达式语言,用于在JSP页面中获取和设置JavaBean的...
2. 控制流标签:处理页面跳转,如`<s:if>`、`<s:else>`进行条件判断,`<s:iterator>`遍历集合。 3. 数据标签:显示和操作数据,如`<s:property>`显示对象属性,`<s:action>`执行动作类方法。 4. 错误处理标签:处理...