可能不存在的属性的JSP bean标记

Ste*_*Kuo 6 java jsp jsp-tags javabeans

在JSP中,我可以使用标记$ {object.property}来引用bean的属性.

有没有办法处理可能不存在的属性?我有一个需要处理不同类型的JSP页面.例:

public class Person {
    public String getName()
}
public class Employee extends Person {
    public float getSalary()
}
Run Code Online (Sandbox Code Playgroud)

在JSP中,我想显示一个包含名称和工资列的人员表.如果该人不是雇员,则工资应为空白.行HTML可能如下所示:

<tr>
    <td><c:out value="${person.name}"></td>
    <td><c:out value="${person.salary}"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果某人不是员工,那么就找不到薪水而且会发生错误.我如何在JSP中解决这个问题?

编辑:是否有JSP标签语言检查实例

Eri*_*lin 7

只需使用EL空运算符,如果它是一个作用域属性,不幸的是你必须使用employee.salary与<c:catch>一起使用你的表达式:

<c:catch var="err">
    <c:out value="${employee.salary}"/>
</c:catch>
Run Code Online (Sandbox Code Playgroud)

如果您确实需要instanceof,可以考虑使用自定义标记.