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 "";
}
}