package br.esmerilprogramming.controller; import io.undertow.server.HttpServerExchange; import io.undertow.util.Headers; import org.esmerilprogramming.overtown.annotation.Controller; import org.esmerilprogramming.overtown.annotation.Page; import org.esmerilprogramming.overtown.http.OvertownRequest; import org.jboss.logging.Logger; import br.esmerilprogramming.model.Car; import java.util.ArrayList; import java.util.List; @Controller(path = "/car") public class CarController { private static final Logger LOGGER = Logger.getLogger(CarController.class); @Deprecated @Page("form") public void form(OvertownRequest request){ HttpServerExchange exchange = request.getExchange(); exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/html"); exchange.getResponseSender().send("<form action='/car/read' method='post' >" + "<label>Year:</label><input name='car.year' />" + "<label>Model:</label><input name='car.model' />" + "<button type='submit'>Submit</button>" + "</form>"); } @Page(value = "list" , responseTemplate = "cars/list.ftl") public void list(OvertownRequest request){ request.addAttribute("cars" , getCars(request) ); } @Page(value = "read" , responseTemplate = "cars/list.ftl") public void read(Car car, OvertownRequest request){ LOGGER.info(car); List<Car> cars = getCars(request); cars.add(car); request.addAttribute("cars" , cars ); } protected List<Car> getCars(OvertownRequest request){ List<Car> cars = (List<Car>) request.getSession().getAttribute("carList"); if(cars == null){ cars = new ArrayList<>(); request.getSession().setAttribute("carList" , cars); } return cars; } }