目录:
一、使JSP自定义标签支持EL表达式(${})
二、如果在JSP自定义标签中,须要拿到spring IOC容器管理的bean
一、使JSP自定义标签支持EL表达式(${})
我写了自定义标签a:rim,想让他的title属性支持${},可是出现了异常.
<%
String str = "这是EL表达式从 request中取出来的文字!";
request.setAttribute("str",str);
%>
<a:rim title="${tut}">
要做下面两件事就可以达到目的了:
1 在tld文件如下配置:
<tag>
<icon>
</icon>
<name>rim</name>
<tag-class>com.xui.overall.RimTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
其中关键的是 <rtexprvalue>true</rtexprvalue> ,使title属性可以接受EL表达式.
2 对接收到的EL表达式处理
title属性的 set get 方法 如下写
private Object title = "";
public void setTitle(final Object title) throws JspException
{
// 对EL表达式的支持
this.title = ExpressionEvaluatorManager.evaluate("title", title.toString(), Object.class, this, pageContext);
}
public Object getTitle()
{
return title;
}
这里处理${}的是org.apache.taglibs.standard.lang.support下,有个叫 ExpressionEvaluatorManager类,
ExpressionEvaluatorManager.evaluate有五个参数。第一个title属性的名字,本例用"title"就行。第二个要求字符串,通常简单调用输入对象的toString方法。第三个是类,通常用Object.class。第四个用this即可,第五个是pageContext变量。
注意:当你的tag属性支持el表达式时,你必须把它声明为Object对象:本例中是 private Object title = "标题";
这样工作就做完了,自定义标签就可以处理 ${}了.
二、如果在JSP自定义标签中,须要拿到spring IOC容器管理的bean可以:
你的JSP自定义标签类可以从org.springframework.web.servlet.tags.RequestContextAwareTag继承,使用
getRequestContext().getWebApplicationContext()可以得到spring的context
分享到:
相关推荐
EL是JSP 2.0引入的一种轻量级表达式语言,用于简化数据访问。它提供了一种简洁的方式来获取和设置页面作用域内的对象属性。 3. **JSTL(JavaServer Pages Standard Tag Library)**: JSTL是一套标准的JSP标签库...
这些接口和类使得开发者能够创建自定义的JSP标签库、定义JSP页面指令、处理JSP表达式语言等。例如,`javax.servlet.jsp.PageContext`提供了对请求、响应、session以及应用程序范围内的对象的访问,而`javax.servlet....
1. **JSP标签库(Tag Libraries)**:JSP API定义了一套标准的标签库接口,如JSTL(JavaServer Pages Standard Tag Library),使得开发者可以通过自定义标签扩展JSP的功能。 2. **Servlet接口**:JSP最终会被编译...
5. **EL函数库**:可以定义自定义的函数库,扩展EL的功能。 在Spring Boot项目中,如果使用了外部Tomcat,配置步骤通常包括: 1. **排除内嵌Tomcat**:在`pom.xml`或`build.gradle`文件中,排除Spring Boot默认包含...
- JSP自定义标签:通过自定义标签库(Tag Libraries)实现,比如JSTL(JavaServer Pages Standard Tag Library)。 - EL(Expression Language)标签:用于访问和操作JavaBean属性,如`${expression}`。 ### 5. JSP...
Servlet-API-2.5.jar与JSP-API-2.1.jar是Java Web开发中的核心库文件,主要用于支持Servlet和JSP(JavaServer Pages)技术。这两个JAR包在构建基于Java的Web应用程序时起着至关重要的作用。 Servlet是Java语言编写...
- EL简化了在JSP页面中访问JavaBean属性的操作,提供了简洁的表达式语法。 - JSTL是一套标准标签库,包括核心标签、XML标签、JDBC标签、函数标签等,可以替代部分自定义标签和脚本代码。 7. **Servlet和JSP的关系...
- **JSP简化Servlet编程**:通过EL和标签库,使得编写动态网页更简洁。 8. **现代Web框架与JSP** - **Spring MVC**:Spring框架中的MVC模块,广泛应用于企业级开发,提供强大的功能和灵活性。 - **JSF(Java...
- JSP指令:如`<%@ page %>`, `<%@ include %>`, `<%@ taglib %>`,它们定义页面属性、引入其他文件或注册自定义标签库。 - JSP动作:如`<jsp:include>`, `<jsp:forward>`, `<jsp:param>`等,用于在运行时动态地...
5. **JSP标签库**:支持自定义标签,可以扩展JSP功能,比如Struts2、Spring MVC等框架提供的标签。 6. **Servlet转换**:JSP编译时会被转换成对应的Java Servlet,然后由Web容器执行。 7. **版本更新**:JSP自1999...
- JSP标签库(Tag Libraries):使用自定义或标准的JSTL标签进行功能扩展。 ### 3. JSP生命周期 JSP的生命周期包括三个阶段:翻译、初始化和服务。 - **翻译阶段**:JSP文件被转换为一个Servlet源代码。 - **初始...
**JSP应用开发** JSP(JavaServer Pages)是Java平台上的一个重要技术,用于构建动态web应用程序。...同时,随着Spring框架和其他现代技术的发展,JSP通常与Spring MVC一起使用,进一步提高了开发效率和应用性能。
在Web开发中,EL(Expression Language)是一种用于在JSP页面中访问JavaBean属性和执行简单操作的语言。它简化了视图层与模型层的数据交互。然而,有时我们需要在EL表达式中调用Java方法,这通常是通过自定义EL函数...
- **EL**:简化了从JSP页面访问JavaBean和其他对象的值。它是表达式语言,使得在页面上获取和设置数据更简洁。 - **JSTL**:提供了许多预定义的标签,用于常见的任务,如循环、条件判断、XML处理等,以减少脚本使用...
- **JSP标记**:包括自定义标签库(Tag Libraries),如JSTL(JavaServer Pages Standard Tag Library),提供标准的控制结构,简化JSP代码。 - **EL(Expression Language)**:用于访问和操作JavaBeans或其他作用...
1. **指令(Directives)**,如`<%@ page %>`, `<%@ include %>`, `<%@ taglib %>`, 它们用于设置页面属性、引入其他文件或注册自定义标签库。 2. **脚本元素(Scriptlets)**,以`<% %>`包裹的Java代码块,通常用于...
- **EL(Expression Language)**:EL提供了一种简洁的方式来访问JavaBean或其他作用域内的对象属性,减少JSP中的Java代码量。 - **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一组标准标签库,提供...
- **Spring2**:轻量级控制反转(IoC)容器,支持声明式事务管理,简化了Java EE开发复杂度。 #### 1.2 项目特点 - **模块化设计**:通过Spring管理各组件之间的依赖关系,实现松耦合,便于功能扩展与维护。 - **...