Боб JSP отмечает для свойства, которое не могло бы существовать

Вы пытались использовать вместо этого toNow, поскольку это дата в прошлом?

Кроме того, возможно, что компонент <Moment /> выполняет рендеринг до установки action.started. Возможно, вы захотите изменить эту строку на:

trigger={action.started && <Moment fromNow>{action.started}</Moment>}

, чтобы убедиться, что action.started имеет значение до рендеринга Moment

.
6
задан BalusC 24 October 2010 в 15:51
поделиться

5 ответов

Просто используйте пустой оператор EL, ЕСЛИ это был ограниченный по объему атрибут, к сожалению, необходимо будет пойти с окружением выражения с помощью employee.salary с <c:catch>:

<c:catch var="err">
    <c:out value="${employee.salary}"/>
</c:catch>

При реальной необходимости в instanceof Вы могли бы рассмотреть пользовательский тег.

7
ответ дан 8 December 2019 в 16:13
поделиться

Если Вы хотите класс, просто используйте ${person.class}. Можно также использовать ${person.class.name eq 'my.package.PersonClass'}

Можно также использовать "значение по умолчанию" на c:out.

 <c:out value='${person.salary}' default="Null Value" />
4
ответ дан 8 December 2019 в 16:13
поделиться

Краткий, но неконтролируемый.

<tr>
    <td>${person.name}</td>    
    <td>${person.class.simpleName == 'Employee' ? person.salary : ''}</td>
</tr>

Существует ли регистрация instanceof языка тега JSP?

Не во время этой записи. Я считал где-нибудь, что они зарезервировали его, instanceof ключевое слово, в EL, может быть для будущего. Кроме того, существует библиотека, доступная, который имеет этот определенный тег. Изучите это прежде, чем решить создать некоторый пользовательский тег для себя. Вот ссылка, Нестандартная Библиотека тегов.

3
ответ дан 8 December 2019 в 16:13
поделиться

Один метод должен был бы создать пользовательскую библиотеку тегов и полиморфизм использования в ней для обработки случая где a Person - a Employee.

Я не выполнил в этом некоторое время для JSP, но часто использую подобную технику в GSP (Страницы Сервера Groovy/Grails).

Иначе Вы могли вставить некоторую логику JSP (не идеальный) для тестирования на Employee- мыс:

<% 
   String salary
   if (person instanceof Employee) {
       salary = person.salary
   } else {
       salary = "" // or '&nbsp;'
   }
%>
<td><c:out value="${salary}"></td>
1
ответ дан 8 December 2019 в 16:13
поделиться

У Вас могло всегда быть поле типа.

public class Person {
    public String getType() { return "Person"; }
    public String getName()
}
public class Employee extends Person {
    public String getType() { return "Employee"; }
    public float getSalary()
}

Ваш JSP был бы похож

<tr>
    <td><c:out value="${person.name}"></td>
    <td><c:if test="'Employee' eq person.type"><c:out value="${person.salary}"></c:if></td>
</tr>

Конечно, класс Класса уже имеет это...

<tr>
    <td><c:out value="${person.name}"></td>
    <td><c:if test="'Employee' eq person.class.simpleName"><c:out value="${person.salary}"></c:if></td>
</tr>

Вы могли также иметь 'isEmployee ()' метод.

0
ответ дан 8 December 2019 в 16:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: