2013-03-19 169 views
1

有沒有人知道問題標記在「bookingService.findBookings(currentUser?.name)」部分中的含義是什麼?Spring WebFlow神祕問題標記

<view-state id="enterSearchCriteria"> 
    <on-render> 
     <evaluate expression="bookingService.findBookings(currentUser?.name)" result="viewScope.bookings" result-type="dataModel" /> 
    </on-render> 
    <transition on="search" to="reviewHotels"/> 
    <transition on="cancelBooking"> 
     <evaluate expression="bookingService.cancelBooking(bookings.selectedRow)" /> 
    </transition> 
</view-state> 

這裏是在服務類中的方法:

@Transactional(readOnly = true) 
    @SuppressWarnings("unchecked") 
    public List<Booking> findBookings(String username) { 
     if (username != null) { 
      return em.createQuery("select b from Booking b where b.user.username = :username order by b.checkinDate").setParameter("username", username).getResultList(); 
     } else { 
      return null; 
     } 
    } 

當前用戶是我認爲當前登錄到應用程序的人,但文檔片斷來自哪裏,用戶有一個頁面尚未登錄。 謝謝!

回答

3

這看起來是「安全的導航操作員」。如果currentUser爲空,則對currentUser?.name的訪問嘗試不會導致錯誤(空指針)。

+0

絕妙的答案!謝謝! – Lukasz 2013-03-19 17:39:24