美文网首页
Springmvc 注解学习

Springmvc 注解学习

作者: Zak1 | 来源:发表于2019-01-01 15:28 被阅读0次

SpringMVC注解详情

  • 路劲数组访问,多路径访问一个controller

    • @RequestMapping(value=["/uri","/uri2"])
    • @RequestMapping(path=["/uri","/uri2"])
  • 限定请求方式只能为GET(其他方式同理,可以写成数组):

    @RequestMapping(method=RequestMethod.GET)

    @RequestMapping(path ={"p1","p2"},method= RequestMethod.GET)
        public String onlyget(){
            System.out.println("this is onlygetMethod");
            return "test";
        }
    

获取项目的地址:

@WebServlet(urlPatterns = {},loadOnStartup = 2)
public class WebPatInitServlet extends HttpServlet {
    @Override
    public void init(ServletConfig config) throws ServletException {
        //在整个应用中上下文使用webpath来存储上下文路径
                      config.getServletContext().setAttribute("webpath",config.getServletContext().getContextPath());
        super.init(config);
    }
}
//loadonstartup =2 是为了让这个servlet最快加载,可以优先获取到webpath

表单访问:

<form action="${webpath}/test/p1" method="post" >
        <input type="submit">
</form>
<!--      以前的写法  ------->
 <form action="${pageContext.request.contextPath}/test/p1" method="post" onsubmit="">
        <input type="submit">
 </form>
  • @ResponseBody (在请求页面返回数据)

    @ResponseBody
    public String put(){
        return "put";
    }
    
  • @ModelAttribute

    默认初始化信息:

    若前端jsp有传值,则使用前端传入的值,否则则使用@ModelAttribute注解下的默认初始化值

    @ModelAttribute
    public void init(Model model){
        System.out.println("initing.........");
        User u=new User();
        u.setUsername("linpr");
        model.addAttribute("user",u);
    }
    
    @RequestMapping("p5")
    @ResponseBody
    public String MA(User user){
        System.out.println(user.getUsername());
        return user.getUsername();
    }
    
<form action="${webpath}/test/p5" method="post" >
    <input type="text" name="username">
    <input type="submit">
</form>
  • @SessionAttributes

    ​ 添加到类上面,在session中放置模型

    @Controller
    @RequestMapping("/test")
    @SessionAttributes("user")
    public class TestController {
    @RequestMapping("p8")
        public String redirecttojsp(User user){
            System.out.println("重定向");
            return "redirect:/index.jsp";
        }
     }
    

    jsp中:

${sessionScope.user.username}
  • @SessionAttribute

    登录的狗会被注册的狗给覆盖,只有进行了注册才能进行登录,且只能登录当前注册账号

    @Controller
    @RequestMapping("/dog")
    @SessionAttributes("dog")
    public class DogController {
        @RequestMapping("/register")
        @ResponseBody
        public String  register(Dog dog){
            System.out.println("注册的狗名为:"+dog.getName());
            return dog.getName();
        }
        //会检查当前会话中是否含有Dog对象,如果,则会出现400错误
        @RequestMapping("/login")
        public String login(@SessionAttribute Dog dog){
            System.out.println(" 登录的名字"+dog.getName());
            return "dog";
        }
    }
    
  • @PathVariable注解

 @RequestMapping("/restful/{id}/{name}")
    public void test(@PathVariable("id")Integer id,@PathVariable("name")String name){
        System.out.println("id为:"+id+"姓名为:"+name);

    }

  • @RestController=@Controller+@Responsebody //当该Controller全是返回数据的方法时,可直接使用@RestController

  • @Requestbody

    用来前台传递json数据到后台,使用方式

  $('#b1').click(function () {
                  var obj={
                  "username":"周振昭",
                      "password":"goudongxi"
                  }
                  $.ajax({
                          url: '${webpath}/Json2/m1',
                          type: 'post',
                          contentType:'application/json',
                          data:JSON.stringify(obj),
                          success: function (data) {
                          }
                      }
                  )
              })
  @Controller
  @RequestMapping("Json2")
  public class JsonController2 {
      @RequestMapping("m1")
      public String t1(@RequestBody User user){
          System.out.println(user.getUsername()+user.getPassword());
          return null;
      }
  }

相关文章

网友评论

      本文标题:Springmvc 注解学习

      本文链接:https://www.haomeiwen.com/subject/rrvnlqtx.html