SpringMVC Ⅲ 注解的使用

@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实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值