Попытка заставить это условно работать.Как мне получить эту переменную для установки? - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь условно установить эту переменную, чтобы при отображении пустой записи мне не приходилось отображать косые черты.

  <c:choose>
    <c:when test="${fn:length(findYear[1]) eq 0}">...</c:when>
    <c:set var="dateformat" value="fn:length(findYear[1]) " />
    <c:when test="${fn:length(findYear[1]) gt 0}">
      <c:set var="dateformat" value="${findYear[1]} / ${findYear[2]} / ${findYear[0]}" />
    </c:when>
  </c:choose>

  <tr:column  width="71px" align="center" headerText="Date" sortable="true" sortProperty="type">
    <tr:outputText value= "${dateformat}">
      <!--  "${findYear[1]} / ${findYear[2]} / ${findYear[0]}"  readOnly= "true"  > -->
    </tr:outputText>​

Сейчас, когда я вызываю переменную, ничего не появляется.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 02 октября 2018

Попробуйте что-то вроде этого:

<c:choose>
  <c:when test="${empty findYear[1]}">
    <c:set var="dateformat" value="${findYear[0]}" />
  </c:when>
  <c:otherwise>
    <c:set var="dateformat" value="${findYear[1]} / ${findYear[2]} / ${findYear[0]}" />
  </c:otherwise>
</c:choose>
  • Оператор empty возвращает true, когда аргумент равен null или пустой строке.
  • Первый <set> оператор находился вне любого <when> блока, и его значение не содержало ${} ...
  • Когда ваши условия завершают друг друга, можно использовать <otherwise>.
...