package org.springframework.webflow.samples.booking; import java.security.Principal; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class HotelsController { private BookingService bookingService; @Autowired public HotelsController(BookingService bookingService) { this.bookingService = bookingService; } @RequestMapping(value = "/hotels/search", method = RequestMethod.GET) public void search(SearchCriteria searchCriteria, Principal currentUser, Model model) { if (currentUser != null) { List<Booking> booking = bookingService.findBookings(currentUser.getName()); model.addAttribute(booking); } } @RequestMapping(value = "/hotels", method = RequestMethod.GET) public String list(SearchCriteria criteria, Model model) { List<Hotel> hotels = bookingService.findHotels(criteria); model.addAttribute(hotels); return "hotels/list"; } @RequestMapping(value = "/hotels/{id}", method = RequestMethod.GET) public String show(@PathVariable Long id, Model model) { model.addAttribute(bookingService.findHotelById(id)); return "hotels/show"; } @RequestMapping(value = "/bookings/{id}", method = RequestMethod.DELETE) public String deleteBooking(@PathVariable Long id) { bookingService.cancelBooking(id); return "redirect:/spring/hotels/search"; } }