如何解释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 carMapMap

如果对象是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

回到顶部