Struts 2支持以下几种表达式语言:
1 支持的表达式
OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;
JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言;
Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性;
Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:
2 支持的操作
支持对象方法调用,如xxx.doSomeSpecial();
支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME;
支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80;
访问OGNL上下文(OGNL context)和ActionContext;
操作集合对象。
OGNL的用法
3 标签中#、%和$这三个符号的使用
#的用途
访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性: 名称 作用 例子 parameters 包含当前HTTP请求参数的Map #parameters.id[0]作用相当于request.getParameter("id") request 包含当前HttpServletRequest的属性(attribute)的Map #request.userName相当于request.getAttribute("userName") session 包含当前HttpSession的属性(attribute)的Map #session.userName相当于session.getAttribute("userName") application 包含当前应用的ServletContext的属性(attribute)的Map #application.userName相当于application.getAttribute("userName") attr 用于按request > session > application顺序访问其属性(attribute) #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止 用于过滤和投影(projecting)集合,如books.{?#this.price<100};
“%”符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值
如果不用%{} 只用 #user.name.indexOf('wang') >= 0 ,这个的出来的数据是不正确的
<s:if test="%{#user.name.indexOf('wang') >= 0 }">
姓王
</s:if>
“$”有两个主要的用途
用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》 在Struts 2配置文件中,引用OGNL表达式,如 <action name="AddPhoto" class="addPhoto"> <interceptor-ref name="fileUploadStack" /> <result type="redirect">ListPhotos.action?albumId=${albumId}</result> </action>
相关推荐
在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。
Struts2标签是Java开发中一个非常重要的工具,它极大地简化了MVC框架下的视图层构建,使得开发者能够...提供的“Struts2标签详解.doc”文档将对这些概念进行详细的解释,是深入学习和理解Struts2标签的重要参考资料。
在Struts2框架中,标签库是其重要组成部分,它提供了丰富的标签来帮助开发者更方便地构建用户界面。下面我们将深入探讨Struts2标签的使用及其API文档。 1. **Struts2标签的分类与功能** - **控制标签**:如`s:if`,...
Struts2标签库是专为Struts2框架设计的一组JSP标签,旨在简化视图层的开发,提高代码的可读性和维护性。这些标签分为UI标签和非UI标签,分别用于...理解和熟练掌握Struts2标签库,是成为一名高效Struts2开发者的关键。
在Struts2中,标签库是其核心特性之一,它提供了一系列预定义的JSP标签,用于简化视图层的编码,提高代码的可读性和可维护性。下面我们将详细探讨Struts2标签的使用方法以及EL(Expression Language)表达式。 1. *...
Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发。这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及...这样的练习有助于提升开发者对Struts2框架的理解和应用能力。
参考文档是开发者理解和使用Struts2标签的关键资源,它详细阐述了每个标签的功能、属性、用法及示例,有助于快速学习和掌握Struts2的视图层开发。 通过深入学习和实践Struts2的标签API,开发者可以有效地提升Web...
Struts2作为一款流行的...理解并熟练运用自定义标签,可以让开发者更好地驾驭Struts2框架,构建出高效、易维护的Web应用。在`teststruts2`项目中,通过实践和探索,你将进一步掌握这一技术,并可能发现更多实用的技巧。
`struts2-tags-API`就是这样一个资源,它包含了Struts2标签API的详细文档,帮助开发者理解和使用这些标签。 一、Struts2标签概述 Struts2标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列预定义的标签,...
提供的`struts2-tags-API`文档是理解Struts2标签的关键资源。这个文档详细列出了每个标签的用法、属性及其含义,还包含了一些示例代码。通过查阅这个API,开发者可以找到具体标签的详细信息,以便更高效地使用Struts...
Struts2是一个强大的MVC(模型-...在开发过程中,适时查阅这些中文文档,可以快速解决遇到的问题,同时加深对Struts2框架的理解。无论是在Windows还是Unix环境下,都可以充分利用这些资源,提高开发的便利性和效率。
Struts2作为一款流行的Java Web框架,为开发者提供了强大的MVC支持。在处理大量数据时,分页功能是必不可少的,它可以提高...通过学习和实践,开发者可以更好地理解和应用Struts2框架,提升其在Web开发中的专业能力。
本主题将深入探讨“Struts2标签下的用户注册”这一知识点,旨在帮助开发者理解如何利用Struts2框架创建一个用户注册系统,并熟练掌握其相关标签的使用。 首先,用户注册通常涉及到以下几个关键部分: 1. **表单...
在实际应用中,应结合Struts2的拦截器、结果类型和配置文件一起理解其工作原理,以达到最佳效果。通过不断实践和学习,开发者可以更熟练地运用Struts2标签API,构建出高效且易于维护的Web应用程序。
Struts2标签库API文档详细列出了每个标签的属性、用法和示例,帮助开发者理解如何有效利用这些标签。通过查阅`struts2-tags-API`文件,你可以找到每个标签的详细信息,包括它们的属性、标签体内容、默认行为等。此外...
理解Struts2标签的实现原理,可以查看其源码,这有助于开发者更好地定制和扩展标签。同时,IDE工具如IntelliJ IDEA或Eclipse通常都有对Struts2标签的智能提示和辅助功能,使得开发更加高效。 总结,Struts2的标签库...
Struts标签是Apache Jakarta Struts框架中的一部分,用于简化Java Web应用程序开发中的视图层构建。Struts标签库提供了一组预定义的JSP标签,这些标签有助于开发者更有效地处理常见的Web开发任务,如表单处理、数据...
Struts2是一个强大的MVC框架,它在Java Web开发...这个实践有助于提升你对Struts2框架的理解,同时掌握自定义标签和数据库操作的关键技能。记得在实际项目中,还需要关注安全性和可维护性,遵循良好的编程和设计规范。