如何解释 EL 表达式中方括号 ([]) 运算符的用法

2024-03-19

当我阅读时春天宠物诊所 https://github.com/SpringSource/spring-petclinic/示例应用程序,我发现他们总是把add and modify功能集成到单个 JSP 文件中,并且它们使用${owner['new']}表达式来自定义当前页面上的元素,例如"New Owner" or "Owner"为一个标签。

还有其他用途吗[]JSP(Spring)环境中的运算符?

控制器文件具有以下片段:

@RequestMapping(value = "/owners/new", method = RequestMethod.GET)
public String initCreationForm(Map<String, Object> model) {
    Owner owner = new Owner();
    model.put("owner", owner);
    return "owners/createOrUpdateOwnerForm";
}
@RequestMapping(value = "/owners/{ownerId}/edit", method = RequestMethod.GET)
public String initUpdateOwnerForm(@PathVariable("ownerId") int ownerId, Model model) {
    Owner owner = this.clinicService.findOwnerById(ownerId);
    model.addAttribute(owner);
    return "owners/createOrUpdateOwnerForm";
}

JSP 文件具有以下代码片段:

<h2>
    <c:if test="${owner['new']}">New </c:if> Owner
</h2>

The []将使您能够:

如果对象是 bean(具有 getter 和 setter),则获取属性:

${car['type']}

这将相当于car.getType(); (or car.isType() if the type字段是一个boolean).

获取键的值,如果对象是Map:

${carMap['Volvo']}

这将相当于carMap.get('Volvo'); when carMap is a Map.

如果对象是一个,则获取索引array or List:

${cars[1]}

这相当于cars[1] if cars is an array或相当于cars.get(1) if cars is a List.

更多细节/来源:http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html


Edit:

你的问题的表达(${owner['new']})属于第一种情况。在宠物诊所应用程序中,Owner https://github.com/SpringSource/spring-petclinic/blob/master/src/main/java/org/springframework/samples/petclinic/model/Owner.java类是一个子类Person https://github.com/SpringSource/spring-petclinic/blob/master/src/main/java/org/springframework/samples/petclinic/model/Person.java这是一个子类BaseEntity https://github.com/SpringSource/spring-petclinic/blob/master/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java. And BaseEntity有一个方法isNew() (so Owner也有这个方法)。

这样片段${owner['new']}相当于owner.isNew().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解释 EL 表达式中方括号 ([]) 运算符的用法 的相关文章

  • 使用 Ant 将非代码资源添加到 jar 文件

    我正在将 java 应用程序打包成 jar 文件 我正在使用 ant 和 eclipse 我实际上需要在 jar 中直接在根文件夹下包含几个单独的非代码文件 xml 和 txt 文件 而不是与代码位于同一位置 我正在尝试使用includes
  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 来自十六进制代码的 Apache POI XSSFColor

    我想将单元格的前景色设置为十六进制代码中的给定颜色 例如 当我尝试将其设置为红色时 style setFillForegroundColor new XSSFColor Color decode FF0000 getIndexed 无论我在
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 读取电子邮件的文本文件转换为 Javamail MimeMessage

    我有一个电子邮件原始来源的文本文件 直接从 gmail 复制 如果您单击 查看原始文件 您就会看到它 我想读入该文件并将其转换为 MimeMessage 如果您好奇为什么 我设置了 JavaMaildir 并且需要用电子邮件填充它的收件箱以
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • 在 SWT/JFace RCP 应用程序中填充巨大的表

    您将如何在 SWT 表中显示大量行 巨大是指超过 20K 行 20 列的东西 不要问我为什么需要展示那么多数据 这不是重点 关键是如何让它尽可能快地工作 这样最终用户就不会厌倦等待 每行显示某个对象的实例 列是其属性 一些 我想使用 JFa
  • javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL 自 Java EE 7 / EL 3.0 起不再工作

  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • Java Swing:需要一个高质量的带有复选框的开发 JTree

    我一直在寻找一个 Tree 实现 其中包含复选框 其中 当您选择一个节点时 树中的所有后继节点都会被自动选择 当您取消选择一个节点时 树中其所有后继节点都会自动取消选择 当已经选择了父节点 并且从其后继之一中删除了选择时 节点颜色将发生变化
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • 将 Apache Camel 执行器指标发送到 Prometheus

    我正在尝试转发 添加 Actuator Camel 指标 actuator camelroutes 将交换 交易数量等指标 发送到 Prometheus Actuator 端点 有没有办法让我配置 Camel 将这些指标添加到 Promet
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • Eclipse:“系统”无法解析

    首先我安装了java 7 0 update 25 然后安装了eclipse 后来根据要求 我卸载了这个java版本并安装了早期版本5 0 现在 在每个 Eclipse 程序中 都会显示 System 一词的错误 解决办法是将java exe
  • UIPageControl - 如何使背景透明?

    我在用UIPageControl并试图使背景透明 UIPageControl pageControl UIPageControl appearance pageControl pageIndicatorTintColor UIColor l
  • CSS 在打印时指定整页宽度?

    我有一个 html 页面 由于打印特定的样式 打印得很好 除了一件事 它不使用页面的整个宽度 换句话说 我希望缩放页面以填充页面 是否可以使用 css 样式获得该结果 实际上你可以 用 pagecss 规则 尽管它可以在浏览器实现之间进行一
  • itextsharp:如果未设置行底部边框,如何显示具有属性 HeaderRows=1 的表格的底线?

    我使用 itextsharp 的最新版本 我使用属性 HeaderRows 1 这样如果有分页符 标题行将再次出现在下一页中 然后我们的内容行具有边框样式 没有底线 如下所示 PdfPCell cell1 null cell1 new Pd
  • 在 Cython 中使用半精度 NumPy 浮点数

    我正在尝试从一些 Cython 代码将 float16 数据发送到 Nvidia P100 卡 当我使用 float32 时 我可以在 Cython 中定义我的类型 如下所示 DTYPE np float32 ctypedef np flo
  • 将 ES7 静态 propTypes 与 React-Native 结合使用

    当我使用 React Native 默认打包程序启动项目时 出现以下错误 Unexpected token在这一行 static propTypes 我查看了 GitHub 上的 React Native issues 但没有找到解决方案
  • mongodb+srv URI 不能有端口号

    我有 注意 用户名和密码是组成的 const CONNECTION URL mongodb srv smith bob email protected cdn cgi l email protection T llyHo cluster0
  • 如何获取 TensorFlow 中估算器的默认会话?

    我创建了一个估算器并使用估算器将其导出到 SavedModel 文件export savedmodel 功能 出于可重复性的原因 我希望能够重新创建估算器 加载 SavedModel 文件中的变量 然后调用evaluate 并得到相同的结果
  • 在启用 SuperTab 的情况下,如何使用 Tab 键在 vim 中缩进?

    我刚刚在 vim 中启用了 SuperTab 如果我尝试缩进空行 SuperTab 会尝试插入字符串 我想 我想要的是让 SuperTab 提供补全功能only如果光标左侧有非空白 我不想使用 Ctrl V 或 Ctrl Q 或其他任何东西
  • 测量 x86-64 中的 TLB 未命中处理成本

    我想估计运行 Linux 的 x86 64 Intel Nehalem 计算机上由于 TLB 未命中而导致的性能开销 我希望通过使用一些性能计数器来获得这个估计 有人知道估计这个的最佳方法是什么吗 谢谢 阿尔卡 如果您可以访问基于 West
  • 我可以限制 php 脚本的最大 CPU 使用率吗?

    我有一些使用大量 cpu 的脚本 是否可以限制允许进程使用的 cpu 量 顺便说一句 我正在 CentOs 5 5 上运行 我帮助一位 PHP 编码员创建了解决类似问题的 PHP 脚本 这些是长时间运行的 PHP 脚本 会产生大量负载 由于
  • 图片可以有多个标签吗?

    例如 当我将新图像推送到存储库时 我希望它有两个标签0 2 and latest 这将允许始终通过使用拉取最新的图像版本latest标签和特定版本使用0 2例如标签 用docker可以吗 有什么解决方法吗 我看到的唯一解决方案是进行两次单独
  • React.js 中的悬停按钮

    我想问如何制作一个按钮 但是当鼠标位于按钮上 悬停 时 新按钮显示在前一个按钮上方 并且它在react js中 thx 这是我的代码的方式 var Category React createClass displayName Categor
  • Apple 关联文件在开发中获取,但在 TestFlight 和 App Store 中未获取

    通用链接在开发中工作得很好 但是一旦我对应用程序进行签名并将其部署到 TestFlight 和 App Store 似乎未获取 apple app site association 因此该应用程序未注册以打开通用链接 1 well know
  • 如何在 Angular 6 中调用多个 API 并订阅?

    在我的应用程序中 调用所有POST请求我已经使用了service 当我得到一个specific code 例如 401 我从服务器调用 API 来获取新令牌 在收到另一个令牌之前 如果有任何其他 API 调用 我会将所有这些请求存储在一个数
  • 元素的 jQuery 标签名称

    我尝试在 jQuery 中获取元素标签名称 我有以下 html div class section h1 New Revision nbsp img alt Lock closed class edit src assets lock cl
  • 从网络提供商处获取准确的当前位置

    我使用以下代码从应用程序中的网络提供商获取当前位置 LocationManager mgr LocationManager getSystemService LOCATION SERVICE boolean network enabled
  • 在 vue 组件上提交表单时如何获取单选按钮的值?

    我有两个组件 我的第一个组件是这样的
  • Chronicle 与 Chronicle-queue 包

    我刚刚开始使用历史记录队列 但是我对使用哪个 API 来读取 写入队列有点困惑 具体来说编年史队列 5 https www javadoc io doc net openhft chronicle queue 5 17 17 vs 编年史
  • 如何解释 EL 表达式中方括号 ([]) 运算符的用法

    当我阅读时春天宠物诊所 https github com SpringSource spring petclinic 示例应用程序 我发现他们总是把add and modify功能集成到单个 JSP 文件中 并且它们使用 owner new