SpringMVC Ⅲ 注解的使用

来源:互联网 发布:淘宝公司内部员工管理 编辑:程序博客网 时间:2024/06/07 21:42

@Autowired 和 @Service

在控制器中使用Autowired将依赖注入
为了能被作为依赖注入,用过注解@Autowired到字段或者方法

在配置文件中添加扫描包
<context:component-scan base-package="app03a.service"/>

在控制器中注入

@Autowired
private ProductService productService;

重定向和Flash属性

重定向的使用方法:在某个方法的返回值按照以下写法:
return "redirect:/product_view/" + saveProduct.getId();

Flash解决了在重定向中参数无法传递的问题

 @RequestMapping(value = "/product_save", 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());    try{        product.setPrice(Float.parseFloat(productForm.getPrice()));    }catch (NumberFormatException e){        e.printStackTrace();    }    //添加到实体类    Product saveProduct = productService.add(product);    redirectAttributes.addFlashAttribute("message", "The product was successfully added");    return "redirect:/product_view/" + saveProduct.getId();}

路径变量

使用URL传值的一种方法,在某个方法的RequestMapping中添加这个字段
然后在被调用的方法中用同名的参数来接收

@RequestMapping("/product_view/{id}")public String viewProduct(@PathVariable Long id, Model model){    Product product = productService.get(id);    model.addAttribute("product", product);    return "ProductView";

@ModelAttribute

Spring MVC 在每次调用请求处理方法时,都会创建一个Model类型的一个实例。
1. 如果要使用使用这个实例,可以在参数中添加一个Model类型的参数
2. 可以在方法中添加ModelAttribute注解类型访问Model实例

原创粉丝点击