基于注解的控制器(3)

  当然最重头戏的还是ProductController类,该类中的方法通过RequestMapping指定Request和Handler的对应关系,而在saveProduct方法的参数中通过RedirectAttribute实现页面的重定向。

@Controller
public class ProductController {
   
private static final Log logger = LogFactory.getLog(ProductController.class);
   
    @Autowired
   
private ProductService productService;
   
    @RequestMapping(value
="/productInput")
   
public String inputProduct(){
       
//logger.info("inputProduct called");
        return "ProductForm";
    }
   
    @RequestMapping(value
="/productSave", method=RequestMethod.POST)
   
public String saveProduct(ProductForm productForm, RedirectAttributes redirectAttributes){
       
//logger.info("saveProduct called");
        Product product = new Product();
        product.setName(productForm.getName());
        product.setDescription(productForm.getDescription());
        product.setPrice(productForm.getPrice());
       
//add product
        Long productID = productService.addProduct(product);
        redirectAttributes.addAttribute(
"message", "The product was successfully added.");
       
return "redirect:/product_view/" + productID;
    }
   
    @RequestMapping(value
="/product_view/{id}")
   
public String viewProduct(@PathVariable Long id, Model model){
        Product product
= productService.queryProduct(id);
        model.addAttribute(
"product", product);
       
return "ProductDetails";
    }
}

View Code

  如下是web.xml配置文件,应用servlet和servlet-mapping元素,servlet元素内的<load-on-startup>元素是可选的。如果存在,则它将在应用程序启动时装载servlet并调用它的init方法,若不存在,则在该servlet的第一个请求时加载,可以通过<init-param>中的<param-value>元素指定配置文件的路径,如果没有<init-param>元素,则默认路径为程序的WEB-INF目录下的servletName-servlet.xml。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/44a320d08c8c2bf00f6e93a3dfbe3c9a.html