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

当我阅读Spring PetClinic示例应用程序时,我发现他们总是将添加和修改功能放在单个JSP文件中,并且他们使用${owner [‘new’]}表达式自定义当前页面上的元素,例如“ New Owner”或标签的“所有者”.

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

Controller文件具有以下片段:

@RequestMapping(value = "/owners/new", method = RequestMethod.GET)

public String initCreationForm(Map 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文件具有以下片段:

New Owner

解决方法:

[]将允许您:

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

${car['type']}

这等效于car.getType(); (如果type字段为布尔值,则为car.isType()).

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

${carMap['Volvo']}

这等同于carMap.get(‘Volvo’);当carMap是地图时.

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

${cars[1]}

如果cars是数组,则等效于cars [1];如果cars是List,则等效于cars.get(1).

编辑:

您问题的表达式(${owner [‘new’]})属于第一种情况.在petclinick应用程序中,Owner类是Person的子类,而Person是BaseEntity的子类.BaseEntity具有方法isNew()(因此Owner也具有该方法).

这样,代码段${owner [‘new’]}等同于owner.isNew().

标签:jsp-tags,el,spring,java,spring-mvc

来源: https://codeday.me/bug/20191030/1970473.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值