SpringMVC总结

最常用的注解@Repository、@Service、@Controller
@Repository 它用于将数据访问层 (DAO层) 的类标识为 Spring Bean
@Service 通常作用在业务层
@Constroller 通常作用在控制层
×这些注释都需要在配置文件中配置才能起到一些特定的作用×
代码写在service和controller区别
service里有'事物',在报错时会有'回滚'操作,循环体内都不会执行。
controller里执行了几条就返回几条结果,报错后不再执行;

SpringMVC总结

使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值
使用@PathVariable时,URL是这样的:http://host:port/path/参数值

一,springMVC接收前台参数

**取json的值时 这样写

//前台
var data={}
data.name = name;
data.password = password;
//后台,required = false表示可以不传true为必须传
public String sharer( @RequestParam(required = false)String password, @RequestParam("pass")String password) {  
   syso(name);  
   syso(password)  
} 

//后台也可以直接接收(json里的名字要和接收的名字一样)
public String sharer( String password, String password) {  
   syso(name);  
   syso(password)  
} 
1,使用HttpServletRequest获取
@RequestMapping("/sharer")  
public String sharer(HttpServletRequest request){        
    Long id = Long.parseLong(request.getParameter("id"));
    Integer userId = Integer.parseInt((String) request.getParameter("checkinId"));
    String name = request.getParameter("name")
}  

2,Spring会自动将表单参数注入到方法参数
//和表单的name属性保持一致
@RequestMapping("/sharer")  
//表单属性是pass,用变量password接收 
public String sharer(String name, @RequestParam("pass")String password) {  
   syso(name);  
   syso(password)  
} 

3,自动的bean注入
<form action="sharer">  
用户名:<input name="name"/>  
密码:<input name="pass"/>  
<input type="submit" value="登陆">  
</form>  

//封装的User类  
public class User{  
  private String name;  
  private String pass;  
}  
@RequestMapping("/sharer")  
public String login(User user)  
{  
   syso(user.getName());  
   syso(user.getPass());  
}  

4,url带参
@RequestMapping(value = "/uploadPages/{id}", method = RequestMethod.GET)
    public String uploadPages(@PathVariable("id") Long id, Model model) {
        Sharer sharer = new Sharer();
        sharer = sharerService.getSharerById(id);
        return "sharer/upload";
    }



二.springMVC向页面传值:

当Controller组件处理后,向jsp页面传值,
1,使用HttpServletRequest 和 Session 然后setAttribute(),就和Servlet中一样
2,使用ModelAndView对象
3,使用ModelMap对象
4,使用@ModelAttribute注解

1,Model数据会利用HttpServletRequest的Attribute传值到success.jsp中
@RequestMapping("/sharer")  
public ModelAndView sharer(String name,String pass){  
    User user = userService.login(name,pwd);  
    Map<String,Object> data = new HashMap<String,Object>();  
    data.put("user",user);  
    return new ModelAndView("success",data);  
}  

2,使用ModelMap参数对象示例:
ModelMap数据会利用HttpServletRequest的Attribute传值到success.jsp中
@RequestMapping("/login.do")  
public String login(String name,String pass ,ModelMap model){  
    User user  = userService.login(name,pwd);  
    model.addAttribute("user",user);  
    model.put("name",name);  
    return "success";  
} 

3,使用@ModelAttribute示例
在Controller方法的参数部分或Bean属性方法上使用
@ModelAttribute数据会利用HttpServletRequest的Attribute传值到success.jsp中
@RequestMapping("/login.do")  
public String login(@ModelAttribute("user") User user){  
    //TODO  
   return "success";  
}  

@ModelAttribute("name")  
public String getName(){  
    return name;  
}  

4,Session存储:
可以利用HttpServletReequest的getSession()方法
@RequestMapping("/login.do")  
public String login(String name,String pwd  ModelMap model,HttpServletRequest request){  
     User user = serService.login(name,pwd);  
     HttpSession session = request.getSession();  
     session.setAttribute("user",user);  
     model.addAttribute("user",user);  
     return "success";  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值