如何解释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。
如果对象是arrayor ,则获取索引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

