У меня есть некоторые классы, который расширяет суперкласс, и в JSP я хочу показать некоторые атрибуты этих классов. Я только хочу сделать один JSP, но я не знаю заранее, имеет ли объект атрибут или нет. Таким образом, мне нужны выражение JSTL или тег, который проверяет, что объект, который я передаю, имеет этот атрибут (подобный в операторе в JavaScript, но в сервере).
<c:if test="${an expression which checks if myAttribute exists in myObject}">
<!-- Display this only when myObject has the atttribute "myAttribute" -->
<!-- Now I can access safely to "myAttribute" -->
${myObject.myAttribute}
</C:if>
Как я могу получить это?
Спасибо.
Используйте JSTL c:catch
.
<c:catch var="exception">${myObject.myAttribute}</c:catch>
<c:if test="${not empty exception}">Attribute not available.</c:if>
Вы имеете в виду что-то вроде этого:
<c:if test="${not null myObject.myAttribute}">
<!-- Now I can access safely to "myAttribute" -->
</C:if>
или другой вариант
<c:if test="${myObject.myAttribute != null}">
<!-- Now I can access safely to "myAttribute" -->
</C:if>
Если это список, вы можете сделать
<c:if test="#{not empty myObject.myAttribute}">