当我阅读时春天宠物诊所 https://github.com/SpringSource/spring-petclinic/示例应用程序,我发现他们总是把add and modify功能集成到单个 JSP 文件中,并且它们使用${owner['new']}
表达式来自定义当前页面上的元素,例如"New Owner" or "Owner"为一个标签。
还有其他用途吗[]
JSP(Spring)环境中的运算符?
控制器文件具有以下片段:
@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>
The []
将使您能够:
如果对象是 bean(具有 getter 和 setter),则获取属性:
${car['type']}
这将相当于car.getType();
(or car.isType()
if the type
字段是一个boolean
).
获取键的值,如果对象是Map
:
${carMap['Volvo']}
这将相当于carMap.get('Volvo');
when carMap
is a Map
.
如果对象是一个,则获取索引array
or List
:
${cars[1]}
这相当于cars[1]
if cars
is an array
或相当于cars.get(1)
if cars
is a List
.
更多细节/来源:http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html http://docs.oracle.com/javaee/6/tutorial/doc/bnahu.html
Edit:
你的问题的表达(${owner['new']}
)属于第一种情况。在宠物诊所应用程序中,Owner https://github.com/SpringSource/spring-petclinic/blob/master/src/main/java/org/springframework/samples/petclinic/model/Owner.java类是一个子类Person https://github.com/SpringSource/spring-petclinic/blob/master/src/main/java/org/springframework/samples/petclinic/model/Person.java这是一个子类BaseEntity https://github.com/SpringSource/spring-petclinic/blob/master/src/main/java/org/springframework/samples/petclinic/model/BaseEntity.java. And BaseEntity
有一个方法isNew()
(so Owner
也有这个方法)。
这样片段${owner['new']}
相当于owner.isNew()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)