java基础---spring和springmvc注解

1、springmvc注解

    @RequestMapping  @RequestParam @ModelAttribute  @SessionAttributes  @Responsebody @RequestBody


@Controller
@RequestMapping("/owners/{ownerId}")
public class RelativePathUriTemplateController {
    /**
     * 1.@ModelAttribute注释void返回值的方法
      * @param abc
     * @param model
     */
    @ModelAttribute
    public void populateModel(@RequestParam String abc, Model model) {
        model.addAttribute("attributeName", abc);
    }
@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, params="myParam=myValue" ) public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) { // implementation omitted }}

public String requestparam1(@RequestParam String username)

 @ModelAttribute注释一个方法

被@ModelAttribute注释的方法表示这个方法的目的是增加一个或多个模型(model)属性。这个方法和被@RequestMapping注释的方法一样也支持@RequestParam参数,但是它不能直接被请求映射。实际上,控制器中的@ModelAttribute方法是在同一控制器中的@RequestMapping方法被调用之前调用的。

被@ModelAttribute注释的方法用于填充model属性,例如,为下拉菜单填充内容,或检索一个command对象(如,Account),用它来表示一个HTML表单中的数据。
一个控制器可以有任意数量的@ModelAttribute方法。所有这些方法都在@RequestMapping方法被调用之前调用。

有两种类型的@ModelAttribute方法。一种是:只加入一个属性,用方法的返回类型隐含表示。另一种是:方法接受一个Model类型的参数,这个model可以加入任意多个model属性。

package demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;

import demo.model.User;

@Controller
@RequestMapping(value="/demo1")
//(1)将ModelMap中属性名为currUser的属性放到Session属性列表中,以便这个属性可以跨请求访问
@SessionAttributes("currUser")
public class Demo1Controller {
    
    @RequestMapping(value="/getUser")
    public String getUser(ModelMap model){
        User user=new User();
        user.setUser_name("zhangsan");
        user.setUser_age(25);
        user.setUser_email("zhangsan@sina.com");
        //(2)向ModelMap中添加一个属性
         model.addAttribute("currUser",user);
        return "/demo/user";
    }
    
    @RequestMapping(value="/getUser1")
    public String getUser1(ModelMap model){
        User user=(User)model.get("currUser");
        System.out.println(user.getUser_name());
        System.out.println(user.getUser_age());
        System.out.println(user.getUser_email());
        return "demo/user1";
    }
    @RequestMapping(value="/addUserInfo",method=RequestMethod.POST)
    @ResponseBody
     //将请求中的data写入UserModel对象中
    public String addUserInfo(@RequestBody UserModel user){
        System.out.println("user_name--------"+user.getUser_name());
        System.out.println("user_sex--------"+user.getUser_sex());
        System.out.println("user_age--------"+user.getUser_age());
            System.out.println("user_email--------"+user.getUser_email());
        System.out.println("user_title--------"+user.getUser_title());
        System.out.println("user_education--------"+user.getUser_education());
        System.out.println("user_telephone--------"+user.getUser_telephone());
        //不会被解析为跳转路径,而是直接写入HTTP response body中
        return "{}";
    }
}


2、spring常用注解

   @Component:标准一个普通的spring Bean类。 (通用的)
    @Controller:标注一个控制器组件类。 
    @Service:标注一个业务逻辑组件类。 

    @Repository:标注一个DAO组件类。

在spring未来的版本中,@Controller,@Service,@Repository会携带更多语义。尽量考虑使用@Controller,@Service,@Repository代替通用的@Component。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值