Struts 2杂谈(2):如何向标签文件中的Struts 2标签传递参数值
如果在标签文件中使用Struts 2标签,就会带来一个问题。下面先看一个例子。
在WEB-INF\tags目录中建立一个table.tag文件,代码如下:
<%@ attribute name="index" type="java.lang.String" required="true" %>
<table border="1" style="font-size:25px">
<s:iterator var="row" value="${index}">
<tr>
<s:iterator var="cell" value="row">
<td>
<s:property value="cell" />
</td>
</s:iterator>
</tr>
</s:iterator>
</table>
在上面的标签文件中使用了<s:iterator>和<s:property>标签,<s:iterator>标签的value属性值使用了EL,这在低版本的Struts 2中是没有任何问题的,但在Struts 2.0.11及以后的版本中默认情况下并不能在Struts 2属性值中使用EL和JSP表达式(也就是说,rtexprvalue参数默认值是false),而只能使用Ognl表达式,而在这种情况下,上面的代码是无法正常执行的。一种解决方法是将Struts 2的发行包中相应标签的某个属性的rtexprvalue参数值设为true,但这种方法并不通用,因为它直接修改了Struts 2。
另外一种方法是通过<s:set>标签将相应的值保存在ValueStack对象中,再使用Ognl表达式来读取。使用这种方法可以将上面的代码修改为如下的形式:
<%@ taglib prefix="s" uri="/struts-tags"%>
<table border="1" style="font-size:25px">
<!-- 使用Ognl表达式引用index -->
<s:iterator var="row" value="index">
<tr>
<s:iterator var="cell" value="row">
<td>
<s:property value="cell" />
</td>
</s:iterator>
</tr>
</s:iterator>
</table>
下面的代码调用了table标签文件,并传递了index参数值:
<%@ taglib prefix="t" tagdir="/WEB-INF/tags"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!-- index参数值为grid1 -->
<s:set var="index" value="grid1" />
<t:table/>
<!-- index参数值为grid2 -->
<s:set var="index" value="grid2" />
<t:table/>
哪位读者还有其他的方法传递index参数值(不能直接修改Struts2发行包,不使用请求参数),请跟贴!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
Struts 2杂谈(2):如何向标签文件中的Struts 2标签传递参数值相关推荐
- python图片保存为txt文件_python实现对文件中图片生成带标签的txt文件方法
在深度学习中经常需要生成带标签的图片名称列表,xxxlist.txt文件,下面写一个简单的python脚本生成该文件列表. import os def generate(dir,label): fil ...
- js文件中怎么使用thymeleaf标签_007、Spring Boot集成Thymeleaf模板引擎
1. Thymeleaf 介绍 Thymeleaf 是适用于 Web 和独立环境的现代服务器端 Java 模板引擎. Thymeleaf 的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以在浏 ...
- Visdrone2019数据集.txt标签文件转换为voc格式.XML标签文件
最近有同学问是否有Visdrone数据集的xml文件,由于本人之前训练数据的时候没有保存xml文件,所以无法共享. 为了解决这个问题,重新写了转换代码并贴出,供大家共同学习使用.(文末附上数据下载网盘 ...
- java foreach标签_Java中Velocity foreach循环标签详解
Java中Velocity foreach循环标签详解 Java Velocity中foreach循环可以很容易的遍历数组或者集合. 定义 #foreach( $elem in $allElems) ...
- android 流失标签,Android中常见的热门标签的流式布局的实现
一.概述:在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何 自定义一个类似热门标签那样的流式布局吧(源码下载在下面最后给出) 类似的自 ...
- HTML中h标签和p标签,HTML 中 br 和 p 标签的区别是什么?
HTML 中 br 和 p 标签的区别是什么? 在 html 中 br 和 p 标签都可以实现文本的换行效果, 那么它们之间有什么区别吗? 下面本篇文章就来给大家介绍一下 br 和 p 标签的区别, ...
- img标签 文件不存在_HTML常用标签
<a> 标签的用法 <a>标签(超链接标签),可以创建通向其他网页.文件.同一页面内的位置.电子邮件地址或任何其他 URL 的超链接. <a>标签的作用 跳转外部页 ...
- Android 总结:Manifest文件中,application和activity标签属性详解
android:hasCode = ["true" | "false"] android:icon = "drawable resource" ...
- 自定义标签TLD文件中,rtexprvalue子标签的意思
rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否能够利用JSP表达式. 举例子: 1.定义一个TLD文件: <tag><name& ...
最新文章
- api数据加密的定义_云原生时代,如何构建开箱即用的数据加密防护?
- php 超全局变量(整理)
- CVE-2021-35211: SolarWinds Serv-U SSH 漏洞分析
- 手游运营重度化,抓好论坛专区“预热战场”
- 关于模型验证那点事儿
- 《C#3.0 in a Nutshell,3rd Edition》之C#3.0和.net3.5基本介绍篇
- 苹果A13和A11性能差距有多大?
- 局域网的分层结构的优点及分层原理
- arcgis交通可达性分析步骤_可达性分析(二):基于Network Analys的服务区分析
- python测试用例设计方法_设计测试用例的基本方法
- 终极算法【6】——贝叶斯学派
- 【Stats】Jarque Bera test正态性检验
- 业务流程图有哪些?一篇文章带你了解和绘制业务流程图
- 2021年韩国经济发展研究报告
- DCOS(centos 7.4/7.6)
- 计算机视觉基础知识点(根据cs231n以及博客内容整理)
- 量化交易之深入理解TB系统运行机制
- 【软件测试】linux命令-引用符号(反斜杠\、单引号‘‘、双引号““)
- 再谈异常处理try-catch-finally
- python读写csv文件方法总结_使用python读写CSV文件的三种方法
热门文章
- ORA-29339错误解决办法
- Python之PIL库的运用、GIF处理h
- [NOI 2017]整数
- 解决oj哈夫曼树问题,学习了priority_queue
- phpstorm如何进行文件或者文件夹重命名
- C# 2.0 锐利体验
- linux安装meb工具,linux-docker下安装禅道全部
- java throw与throws_基于Java中throw和throws的区别(详解)
- c++基础day03
- Vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果