Как проверить, существует ли объект в Gsp или нет? - PullRequest
0 голосов
/ 07 сентября 2011
<g:each in="${clientTripInstance?.startPointJob?.passengerActivities}" status="i" var="startPassengerActivity">
     <g:if test = "${startPassengerActivity?.passengerCount > 1}">
         <p> ${startPassengerActivity?.activity}  ${startPassengerActivity?.passengerRole?.displayName} (${startPassengerActivity?.passengerCount})
     </p>
     </g:if>
     <g:else>
       <p> ${startPassengerActivity?.activity}  ${startPassengerActivity?.passengerRole?.displayName}
          </p>
     </g:else>
</g:each>

этот код работает нормально, когда clientTripInstance .startPointJob? .PassengerActivities существует .. Есть некоторые случаи, когда clientTripInstance .startPointJob? .PassengerActivities не существует ... так как проверить, не существует? я не хочу отображать что-либо, если его не существует ..

класс домена

   class Trip {
            String notes
           List<PointJob> pointJobs = new ArrayList<PointJob>()
   }

   class PointJob {
       Point point
   List<PassengerActivity> passengerActivities = new ArrayList<PassengerActivity>();
   }


  class PassengerActivity {
    PassengerRole passengerRole;
    String activity;
    int passengerCount;

static constraints = {
    passengerRole()
    activity()
    passengerCount(nullable:true)
}

}

1 Ответ

2 голосов
/ 07 сентября 2011

Разве вы не можете просто обернуть все это в другом тесте, чтобы убедиться, что список не нулевой или пустой?

<g:if test="${clientTripInstance?.startPointJob?.passengerActivities}">
  <g:each in="${clientTripInstance?.startPointJob?.passengerActivities}" status="i" var="startPassengerActivity">
    <g:if test = "${startPassengerActivity?.passengerCount > 1}">
      <p>
        ${startPassengerActivity?.activity}  ${startPassengerActivity?.passengerRole?.displayName} (${startPassengerActivity?.passengerCount})
      </p>
    </g:if>
    <g:else>
      <p>
        ${startPassengerActivity?.activity}  ${startPassengerActivity?.passengerRole?.displayName}
      </p>
    </g:else>
  </g:each>
</g:if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...