gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:49 25 4
gpt4 key购买 nike

当我读到Spring PetClinic示例应用程序,我发现他们总是将 addmodify 功能放入单个 JSP 文件中,并且他们使用 ${owner['new']}用于自定义当前页面上的元素的表达式,例如用于标签的所有者”“所有者”

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

Controller 文件有以下片段:

@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>

最佳答案

[] 将允许您:

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

${car['type']}

这将等同于 car.getType();(或 car.isType() 如果 type 字段是 boolean 值).

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

${carMap['Volvo']}

carMapMap 时,这将等同于 carMap.get('Volvo');

获取索引,如果对象是数组列表:

${cars[1]}

这相当于 cars[1] 如果 cars 是一个 array 或相当于 cars.get(1) 如果 cars 是一个 List

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


编辑:

您的问题表达式 (${owner['new']}) 属于第一种情况。在宠物诊所应用程序中,Owner类是 Person 的子类这是 BaseEntity 的子类. BaseEntity 有一个方法 isNew()(所以 Owner 也有那个方法)。

这样,片段 ${owner['new']} 等同于 owner.isNew()

关于java - 如何解释 EL 表达式中方括号 ([]) 运算符的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17119875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com