Java tutorial
/* * Spring Agora * https://github.com/ThiagoUriel/spring-agora-web * Copyright (C) 2014 - Thiago Uriel M. Garcia * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package io.springagora.store.web.controllers; import io.springagora.core.domain.Category; import io.springagora.core.domain.Product; import io.springagora.core.exceptions.EntityNotFoundException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping(value = "/products") public class ProductWebController { @RequestMapping(value = "/showcase", method = RequestMethod.GET) public ModelAndView showcaseProducts() { ModelAndView mav = new ModelAndView("productShowcase"); mav.addObject("categories", Category.findAll()); mav.addObject("products", Product.findForShowcase(0, 20).getContent()); return mav; } /** * Retrieves a specific product, based on it's identifier. * <p> * If no product is found for the given identifier, it should return an HTTP * 404 NOT FOUND, that is going to be handled by the default error page. * * @param id * Identifier for the product being requested by the client. * * @return * The view that must be rendered by the engine, containing the product * information found for the given ID. */ @RequestMapping(value = "/{id}", method = RequestMethod.GET) public ModelAndView findProductById(@PathVariable Long id) { Product product = Product.findOne(id); if (product != null) { ModelAndView mav = new ModelAndView("productDetails"); mav.addObject("categories", Category.findAll()); mav.addObject("selectedCategory", product.getCategory()); mav.addObject("product", product); return mav; } throw new EntityNotFoundException("Sorry, I couldn't find this product."); } }