本文为原创,如需转载,请注明作者和出处,谢谢!
标签文件是JSP自定义标签中的一种,实现的方法在WEB-INF/tags目录或子目录中建立一个.tag文件,如table.tag,并通过taglib指令来引用.tag文件所在的目录,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><%@taglibprefix="t"tagdir="/WEB-INF/tags"%>
如果在标签文件中使用Struts 2标签,就会带来一个问题。下面先看一个例子。
在WEB-INF/tags目录中建立一个table.tag文件,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><%@taglibprefix="s"uri="/struts-tags"%>
<%@attributename="index"type="java.lang.String"required="true"%>
<tableborder="1"style="font-size:25px">
<s:iteratorvar="row"value="${index}">
<tr>
<s:iteratorvar="cell"value="row">
<td>
<s:propertyvalue="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表达式来读取。使用这种方法可以将上面的代码修改为如下的形式:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->
<%@taglibprefix="s"uri="/struts-tags"%>
<tableborder="1"style="font-size:25px">
<!--使用Ognl表达式引用index-->
<s:iteratorvar="row"value="index">
<tr>
<s:iteratorvar="cell"value="row">
<td>
<s:propertyvalue="cell"/>
</td>
</s:iterator>
</tr>
</s:iterator>
</table>
下面的代码调用了table标签文件,并传递了index参数值:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglibprefix="t"tagdir="/WEB-INF/tags"%>
<%@taglibprefix="s"uri="/struts-tags"%>
<!--index参数值为grid1-->
<s:setvar="index"value="grid1"/>
<t:table/>
<!--index参数值为grid2-->
<s:setvar="index"value="grid2"/>
<t:table/>
哪位读者还有其他的方法传递index参数值(不能直接修改Struts2发行包,不使用请求参数),请跟贴!
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
分享到:
相关推荐
在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。
1. **在struts.xml配置文件中传递参数** 在struts.xml中,你可以直接在`<result>`标签内使用`param`元素来定义参数。例如: ```xml <param name="location">/pages/myPage.jsp ${myValue} ``` 这里,`...
在Struts2中,使用了一系列的标签库来增强JSP页面的功能,使得开发者可以更方便地实现业务逻辑与视图的分离,提高代码的可读性和可维护性。本篇文章将详细介绍Struts2中的各种标签及其应用。 1. **s:form标签**:这...
在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许...
3. struts.configuration.files:这是Struts2自动加载的一个配置文件列表,Struts2会自动加载这些文件中的设置和参数。 4. struts.configuration.xml.reload:这是一个布尔值,用于确定是否加载XML配置文件。如果...
例如:<s:param name="test" value="testValue" />,该标签将将“test”参数传递到Action中,并将其值设置为“testValue”。 在Struts2标签库中,还有许多其他的标签,如<s:checkbox />、<s:radio />、<s:textarea ...
Struts2 标签列表及说明 Struts2 是一个基于 Java 语言的 Web 应用程序 Framework,它提供了许多标签来帮助开发者快速构建 Web 应用程序。下面是 Struts2 的标签列表及说明: A: * <s:a>:超链接,类似于 HTML ...
Struts2 标签库详解 Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来...
这些标签通常与Struts2的配置文件相结合,可以传递参数,实现动态链接和导航。 2. **数据展示标签**:这一类标签用于在页面上展示数据,如`s:property`标签用于显示对象的属性值,`s:debug`用于调试,显示当前上下...
这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查。 首先,我们来看Struts2的核心概念。Struts2作为MVC框架,它负责处理HTTP...
### Struts2页面开发中常用的标签介绍 #### 一、Struts2常用标签概述 Struts2框架在Java Web开发中被广泛应用于构建MVC架构的应用程序。它提供了丰富的标签库来简化页面开发过程,使得开发者能够更加高效地处理...
要使用Struts2标签,首先需要确保项目中包含了Struts2的核心库文件`Struts2-core-2.1.11.jar`。接着,在JSP页面中通过以下代码导入Struts2的标签库: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> ``` 在...
4. **创建分页标签库**:Struts2支持自定义标签,你可以创建一个`.tld`文件来定义分页标签。标签库应该包含开始、结束、上一页、下一页等标签,以便在视图层中方便地使用。 5. **实现标签处理类**:对应的Java类...
在Struts2框架中,页面跳转是常见的需求,它涉及到前端控制器的设计模式以及请求处理流程。`<jsp:forward/>`标签在JavaServer Pages (JSP)中用于将一个请求转发到另一个资源,比如从一个JSP页面跳转到另一个JSP页面...
- 在`web.xml`文件中配置Struts2的过滤器`FilterDispatcher`,它是Struts2的核心组件。 - 通过指定过滤器的初始化参数,可以控制Struts2的行为。 - **使用配置文件struts.xml实现页面导航定义**: - `struts.xml`...
本文将深入解析Struts2中的常用标签,这些标签在实际开发中非常实用,对于初学者理解并掌握Struts2的运行机制至关重要。 首先,我们需要了解Struts2标签库的主要组成部分,它们分为Action、Display、Logic、Field和...
3. Struts2框架的使用:在使用Struts2框架进行Web开发时,需要定义Action类来处理用户的请求,然后在struts.xml配置文件中配置Action类的映射关系。Struts2提供了丰富的类型转换器和数据校验器,可以方便的进行数据...
3. **配置struts.xml**:在Struts2配置文件中,你需要声明你的Action和对应的Result类型。此外,还需要为自定义标签添加配置,这样在JSP中才能使用。这包括指定标签的namespace、class以及可能的属性。 4. **JSP...