有没有人知道问号在“bookingService.findBookings(currentUser?.name)”部分中的含义?
<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;
}
}
当前用户是我假设当前登录到该应用的用户,但该代码段来自用户尚未登录的页面。
答案 0 :(得分:3)
这看起来像是“安全导航运营商”。如果currentUser为null,那么对currentUser?.name的访问尝试不会导致错误(空指针)。