Taglib原理和实现 第五章:再论支持El表达式和jstl标签

「0基础安装本地Hermes」本地部署Hermes|为Hermes装上UI图形界面 Hermes已经发布有一段时间了,不少小伙伴也装配上了这个Agent。相对于之前发布爆火的Openclaw,Hermes对于很多小白不是很友好,它没有属于自己的UI界面,只能在本地终端运行,前不久Github上有人发布自己的作品,让终端里的Hermes拥有属于自己的UI界面,EKKOLearnAI开发的Hermes UI界面项目为终端运行的Hermes提供了可视化操作方式,降低了使用门槛。该项目通过Web界面与本地Hermes Agent交互,实现更友好的操作体验。 阅读详情

第五章:再论支持El表达式和jstl标签

1。问题:你想和jstl共同工作。比如,在用自己的标签处理一些逻辑之后,让jstl处理余下的工作。

2。看这个jsp例子:
....
<%
String name="diego";
request.setAttribute("name",name);
%>

<c:out value="${name}"/>
......

  许多jstl标签支持El表达式,所以,只要你在自己的标签内部把值塞进request,其他jstl标签就能使用它们

3。下面这个例子,从request里面取得对象,找到它属性的值,塞到request里去。

package diegoyun;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;

public class SetVarTag extends TagSupport
{
 private Object value = null; 
 private String property = null; 
 private String var = null;
 public void setVar(String var)
 {
  this.var = var;
 }
 public void setProperty(String property)
 {
  this.property = property;
 }
 public void setValue(Object value)throws JspException{
     this.value = ExpressionEvaluatorManager.evaluate(
            "value", value.toString(), Object.class, this, pageContext);  
 }
 public int doEndTag() throws JspException{
  Object propertyValue = null;
  try{
   propertyValue = PropertyUtils.getProperty(value, property);
  }
  catch (Exception e) {
   throw new JspException(e);
  }  
  pageContext.setAttribute(var,propertyValue);
  return EVAL_PAGE;
 }
}

编写tld
<!--SetVarTag-->
 <tag>
  <name>set</name>
  <tag-class>diegoyun.SetVarTag</tag-class>
  <body-content>empty</body-content>
  <attribute>
   <name>value</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
  <attribute>
   <name>property</name>
   <required>false</required>
   <rtexprvalue>false</rtexprvalue>
  </attribute>
  <attribute>
   <name>var</name>
   <required>false</required>
   <rtexprvalue>false</rtexprvalue>
  </attribute>
 </tag>

编写jsp
<%@ page language="java" %>
<%@ page import="diegoyun.vo.*"%>
<%@ taglib uri="/WEB-INF/tlds/diego.tld" prefix="diego"%>
<%@ taglib uri="/WEB-INF/tlds/c.tld" prefix="c"%>
<html>
<body bgcolor="#FFFFFF">
<%
Man man = new Man();
man.setName("diego");
request.setAttribute("man",man);
%>
Get value from request and set it's property value into request:<br>
<diego:set value="${man}" property="name" var="myname"/>
now use OutTag of jstl taglib to get the name:<br>
value is : <c:out value="${myname}" />

</body>
</html>

运行,效果如下:

Get value from request and set it's property value into request:
now use OutTag of jstl taglib to get the name:
value is : diego

4。结语。和jstl交互是非常有用的技术。在jstl里提供了许多完成基本功能的标签,如输出,循环,条件选择等。仅在处理自己特定逻辑的时候才实现自己的标签,并提供和jstl交互,能大大提高重用性和减少工作量

Windows Docker Desktop部署MaxKB详细教程 MaxKB(Max Knowledge Base)是一款基于大语言模型(LLM)和检索增强生成(RAG)技术的开源知识库问答系统,旨在帮助企业、教育机构及研究组织高效管理知识并提供智能问答服务。 阅读详情

相关推荐

手把手教你在VirtualBox里复活Win98,并搞定驱动和文件传输(含资源寻找攻略)

本文详细指导如何在VirtualBox中安装和配置Windows 98,包括驱动安装、文件传输等实用技巧。通过逐步教程和资源寻找攻略,帮助技术爱好者完美复刻这一经典操作系统,满足怀旧或兼容性测试需求。

weixin_29596051的博客 325

taglib 原理和实现[转载]

第一章:taglib 原理和实现1。问题:Tag究竟是什么?如何实现一个Tag?    一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负 责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发人员自己实现。换句话说,你只需把实现了业务逻辑的类继 承TagSu

在水一方 1207

WINDOWS下SIP拨号的实现

在WIN10上拨打SIP电话  由于我的交换原理实验有一个是关于SIP的抓包的。而之前从未接触过SIP,所以在如何完成一次SIP拨号上遇到了不少问题,查了好多资料都没有完整的或者写的很清楚的,这里就对那些资料做一个总结,给出一个比较完善的解决方案,一来是记录此次实验的收获,而来也可能为其他有同样困惑的人解惑。  废话不多说直接开始。首先是下载一个可以拨打SIP电话的客户终端,这里我选择的是MicroSIP, 下载红圈内的文件,下载好之后直接一路安装即可,没有什么特别注意的地方。  安装好客户端之后,就需要注

weixin_43918519的博客 3807

人生第一篇博客,求支持。 对EL表达式和JSTL标签库和OGNL表达式的了解

对EL表达式、JSTL标签库、还有OGNL表达式语言进行了描述。

sinat_23622505的博客 1477

实测对比:DECIMER、Img2Mol、MolScribe,哪个化学结构识别工具更靠谱?

化学结构识别(CSR)工具的核心任务是将分子结构图像转换为SMILES(Simplified Molecular Input Line Entry System)表示。这一过程需要克服图像质量差异、绘制风格变化以及特殊基团识别等挑战。三款工具采用不同的技术路线:DECIMER:基于EfficientNetV2+Transformer架构,优势在于处理标准期刊文献中的分子图示Img2Mol。

weixin_32576389的博客 346

FPGA AXI DDR3读写时序调试与FIFO缓存实战解析

本文深入解析FPGA中AXI协议与DDR3的读写时序调试,重点探讨FIFO缓存在数据流控制中的关键作用。通过实战案例详细讲解突发传输中的地址对齐、数据分片等常见问题,并提供状态机设计、仿真波形分析和性能优化技巧,帮助开发者高效解决高速数据存储场景下的时序同步与数据一致性问题。

blockchain9miner的博客 1119

JSP详细讲解

JSP详细讲解前言一、JSP 介绍二、JSP 运行原理1、JSP 技术特点2、JSP 与 Servlet 区别三、 JSP 的使用1、JSP 的三种原始标签2、JSP 原始标签的使用3、 JSP 的指令标签4、JSP 指令标签分类1、Page 指令标签2、Include 指令标签3、 Taglib 指令标签四、JSP 的内置对象五、 请求转发1、什么是请求转发2、请求转发与重定向的区别3、请求转发案例六、JSP 中的四大作用域对象七、JSTL 标签库1、什么是 JSTL 标签库2、JSTL 标签分类1、核心

康康要加油的博客 1万+

【实战解析】SAP EWM与PP深度集成:从后台配置到前台物料流转的全链路设计

本文深入解析SAP EWM与PP深度集成的全链路设计,涵盖后台配置与前台物料流转的实战应用。通过两种集成模式(DPI与API)的选择策略、十二个关键后台配置步骤详解,以及PMR生成、PSA补货等前台演示,帮助企业实现生产计划与物料供应的高效协同,显著提升生产效率和库存周转率。

weixin_30723433的博客 421

JSTL标签库的使用及其常用标签

什么是JSTL标签库?使用JSTL标签库的步骤: 第一步:引入JSTL标签库对应的jar包。 第二步:在JSP中引入要使用标签库。(使用taglib指令引入标签库。) 第三步:在需要使用标签的位置使用即可。表面使用的是标签,底层实际上还是java程序。 - Java Standard Tag Lib(Java标准的标签库) - JSTL标签库通常结合EL表达式一起使用。目的是让JSP中的java代码消失。 - 标签是写在JSP当中的,但实际上最终还是要执行对应的java程序。(java...

weixin_48826996的博客 897

【Unity】制作简易三维场景

本文介绍如何制作一个三维场景

CiNian_的博客 5333

【交易系统系列27】带你看懂订单的“奇幻漂流”

作为一个在交易所后台“厨房”里摸爬滚打了十多年的老兵,我将用一杯手冲咖啡的时间,带你亲历一次完整的订单“奇幻漂流”。本文将用一个“奶爸”的生活视角,硬核拆解**撮合(Matching)**、**清算(Clearing)**、**结算(Settlement)**和**出入金**这四大核心环节。这不仅是一次对**交易系统优化**和**撮合引擎架构**的深度剖析,更是一场关于传统金融与数字金融两种不同“上菜”哲学的真实故事。

weixin_43988453的博客 407

12-JSTL标签库

本文介绍了JSTL标签库的基本概念和使用方法。JSTL是Java标准的标签库,结合EL表达式使用可减少JSP中的Java代码。使用步骤包括:引入jar包、通过taglib指令引入标签库、在需要位置使用标签。重点讲解了核心标签库中的常用标签,如<c:if>用于条件判断,<c:forEach>用于循环遍历集合或数组。文章还分析了JSTL标签的原理,即通过tld文件建立标签与Java类的映射关系,并详细说明了配置文件的源码结构。通过具体示例展示了如何在JSP页面中实际应用这些标签,包括基本

u011488477的博客 947

python代码实现了一个基于图注意力网络(GAT)和长短期记忆网络(LSTM)的股票成交量预测模型

自定义数据集类:定义了类,继承自。该类用于生成股票数据的时间序列样本,每个样本包含一个长度为seq_length的时间序列和对应的目标成交量。数据加载器:使用DataLoader对数据集进行批量加载,设置批量大小为 64,并开启数据打乱功能。GAT - LSTM 模型:定义了GAT_LSTM类,继承自。该模型结合了 GAT 和 LSTM 两种神经网络:GAT 部分:使用GATConv处理全局图特征,捕获股票之间的相互关系。LSTM 部分:使用nn.LSTM处理时间序列数据,捕捉时间序列的动态变化。

huanghm88的专栏 425

taglib 原理和实现

第一章:taglib 原理和实现 1。问题:Tag究竟是什么? 如何实现一个Tag?     一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负 责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发人员自己实现。换句话说,你只需把实现了业务逻辑的类继 承Tag

oathevil的专栏 1272

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JSP、MVC开发模式、EL表达式、JSTL标签、三层架构

今日内容 1. JSP: 1. 指令 2. 注释 3. 内置对象 2. MVC开发模式 3. EL表达式 4. JSTL标签 5. 三层架构 JSP: 1. 指令 * 作用:用于配置JSP页面,导入资源文件 * 格式: <%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %> * 分类: 1. page : 配置JSP页面的 * conte...

476

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jsp指令,九大隐式对象,四大域对象;EL表达式,JSTL标签库

1、jsp的执行原理 问题一:JSP中的java代码是如何运行的? 会被服务器直接放到service方法中运行 问题二:out是什么? 是一个字符输出流,功能和Servlet中PrintWriter一致,该out是service方法中定义好的变量名 问题3:除了out,还有什么东西可以直接用? 只要是service方法中定义的变量,在jsp中都可以直接使 用(JSP的隐式对象) 要想明确以上问题,首先必须知道JSP的执行过程。 1、Tomcat服务器会将JSP页面翻译成一个java.

qq_41541451的博客 398

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

复习java web之jsp入门_El表达式_JSTL标签库

JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ?Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP支持HTML语法,生成HTML方便。 JSP技术与Servlet 技术区别和关系?JSP和Servlet技术都是用来动态生成网页的,Servlet不支持HTML语法,生成网页麻烦,JSP...

angzhuo9931的博客 134

JavaWeb — JSTL标签库

jstl

weixin_62838185的博客 731

Taglib原理和实现:El和JSTL标签

 问题:你想和JSTL共同工作。比如,在用自己的标签处理一些逻辑之后,让JSTL处理余下的工作。 看这个JSP例子:   <%String name="diego";request.setAttribute("name",name);%><c:out value="${name

543

JSTL标签库使用的心得总结和复习

什么是JSTL标签库? Java Standard Tag Lib(Java标准的标签库) JSTL标签库通常结合EL表达式一起使用。目的是让JSP中的java代码消失。 标签是写在JSP当中的,但实际上最终还是要执行对应的java程序。(java程序在jar包当中。) 使用JSTL标签库的步骤: 第一步:引入JSTL标签库对应的jar包。 tomcat10之后引入的jar包是: jakarta.serv..

weixin_51673192的博客 873

Taglib原理和实现 第六章:标签内常用方法总结

第六章:标签内常用方法总结:1。支持el表达式:import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;private Object value = null;this.value = ExpressionEvaluatorManager.evaluate("value", value.toStrin

WalkingWithJava 1844

JavaEE实战——jsp入门、El表达式、JSTL标签库

本文主要阐述JSP原理、注释、3条指令、9个内置对象、6个标签;EL表达式语言的运算、获取JSP四种数据范围内的数据、11个内置对象、EL的fn字符串处理函数;JSTL使用入门、12个核心标签库。

李春春的专栏 4726

Day49 Jsp+el表达式+jstl标签库

Jsp学习 Jsp学习: 问题: 使用servlet进行用户请求处理时,发现,使用Servlet尽心页面响应时, 响应页面的代码写起来过去麻烦,极大的影响了开发的效率。 解决: 使用jsp技术 java server page 使用: jsp的访问原理: 当浏览器...

新世界的大门 369

js中自定义标签(TagLib)原理与实现

第一章:taglib 原理和实现 1。问题:Tag究竟是什么?如何实现一个Tag?   一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发人员自己实现。换句话说,你只需把实现了业务逻辑的类继承TagSupport或

qq_33396462的博客 6812

简述jsp之EL表达式和jstl及其使用

Jsp的指令之include指令include指令:代表的是页面的包含。 作用:可以把一些jsp的页面包含在一起,对外展示。 页面的布局,现在已经不用了,现在都用css+div进行布局。include的语法 比方说/personal/WebContent/jsp/base/tag.jsp需要引入tag.jsp,则include的原理 include指令是静态包含的原理,默认把其他包含的所有的文件

习惯沉淀的专栏 636
上一篇: Taglib 原理和实现:第四章 循环的Tag
下一篇: Taglib原理和实现 第六章:标签内常用方法总结
云哥
博客等级 码龄22年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值