如何解释EL表达式中方括号([])运算符的用法
当我阅读
示例应用程序时,我发现他们总是将 添加 和 修改
功能放在单个JSP文件中,并且他们使用${owner['new']}
表达式自定义当前页面上的元素,例如标签的 “ 所有者”_或
“所有者”_ 。
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']}
这等同于carMap.get('Volvo');
when carMap
是Map
。
如果对象是array
or ,则获取索引List
:
${cars[1]}
这等效于cars[1]
if cars
是一个array
或等同于cars.get(1)
if cars
是一个List
。
更多详细信息/来源:http :
//docs.oracle.com/javaee/6/tutorial/doc/bnahu.html
您问题的表达式(${owner['new']}
)属于第一种情况。在petclinick应用程序中,Owner
类是的子类Person
,是的子类BaseEntity
。并BaseEntity
有一个方法isNew()
(Owner
该方法也是如此)。
这样,代码段${owner['new']}
相当于owner.isNew()
。
以上是 如何解释EL表达式中方括号([])运算符的用法 的全部内容, 来源链接: utcz.com/qa/420350.html