基于注解的springmvc

springmvc注解开发:
  @RequestMapping(value="/login",method=RequestMethod.POST)  接收浏览器发送的请求的
  @Controller  声明 实例化 controller
  @RequestParam(value="uname") String a 接收请求路径的携带的参数的

  localhost:8080/ssm/user/login?uname=admin&pwd=123
================================================================
@PathVariable: 这个 注解 必须使用 / 请求
  localhost:8080/ssm/user/login/1

  @RequestMapping("/login/{an}")

  public String login(@PathVariable("an") int id){

  }

@SessionAttributes:这个 注解 相当于 HttpSession
  写 在 上面

  这个 注解 必须 结合 Model接口 使用
   将数据存储到 model对象中; 这样session会默认存储

   前天可以通过 EL表达式 直接获取

  这个 注解中的属性 有 value  ,type session会自动匹配值 和类型

@ModelAttribute:
  1)用户 方法 上 ,用这个修饰的方法 优先执行与 requestMapping
  2)作为方法的入参, 可以直接从 域对象中取值

=====================================================================================
Springmvc的方法的入参可以有哪些类型:
  1.原生类型: int ,long ,double ,float  ,char...
  2.对象;
  3.HttpSession,HttpServletRequest,HttpServletResponse
  4.注解
  5.Map集合
  6.Model 接口 这个接口 相当于 HttpServletRequest, model中存储了数据, 前台的request域对象就有数据
====================================================================================



  用户名:<input name="username" value="张三">


    public void login(User user){

    }


@RequestBody
@ResponseBody

package com.oracle.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;

//只能修饰 空之层
@Controller
@RequestMapping("/user")
@SessionAttributes
public class UserController{

    /**
     * @RequestMapping注解 使用来接收 请求的
     *   里面有多个参数 ,例如value :请求路径 的 名
     *                      method: RequestMethod.POST 请求方式
     *   当我们有一个参数是 value 可以省略
     *       多个参数 必须写
     *
     *  使用位置: 1.方法方法上 正常接收请求
     *            2.放在类上  区分不同 模块儿中的 请求名
     *                  user/login
     *                  user/add
     *                  product/add
     *
     *   @RequsetParam注解:
     *    接收前台路径中的参数值 ,   localhost:8080/ssm/login?uname=admin
     *       属性:  value :value的值  必须 和 参数名一致 uname
     *              required = true,  是否允许有 默认值 true ,false
     *              defaultValue = "1" 默认值为
     *
     *  springmvc的转发和 重定向:
     *      应用在 return 关键字后 添加  redirect:/目标地址 重定向
     *                                  forward:/目标地址 转发
     *
     */
   /* @RequestMapping(value="/login")
    public String haha(){
        return "main";
    }*/

    @RequestMapping(value = "/login")
    public String login(@RequestParam(value = "uname",required = true,defaultValue = "1") String a,
                        @RequestParam("password") String password,HttpSession session){
        //这个方法 会自动接收入参

        System.out.println(a + " : " +password);

        if("admin".equals(a) && "123".equals(password)){
            return "main";
        }else{
            return "index";
        }
//        System.out.println("我是 注解开发 springmvc");
    }







    @RequestMapping("/delete/{name}/{pwd}")
    public void delete(@PathVariable("name") String a,
                         @PathVariable("pwd") String b){
        System.out.println("我的值是:"+a);
        System.out.println("我的值是:"+b);
    }

}
package com.oracle.controller;

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

import javax.servlet.http.HttpSession;
import java.util.Map;

@Controller
@RequestMapping("/product")
@SessionAttributes(types = String.class)
public class ProductController {

    @ModelAttribute
    public String haha(){
        System.out.println("我是 modelAttribute注解");
        return "iphone X";
    }

    @RequestMapping("/getProduct")
    public String getProduct(@ModelAttribute String name, Model model){
        System.out.println(name);
        System.out.println("我是 商品方法");

     //   String name = "iphone 11";
     //   String a = "鼠标";
     //   int age = 23;

       // model.addAttribute("phone",name);
      //  model.addAttribute("mouse",a);
      //  model.addAttribute("phone",age);

        //session.setAttribute("phone",name);

        return  "../main";
    }


    /*@RequestMapping("/productList")
    public String getList(){
        return "main";
    }*/


    @RequestMapping("/register")
    public String add(Map<String,Object> map){

      return "";
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值