@Controller
@RequestMapping("/vv1")
public class Controller2 {
@ResponseBody
@RequestMapping("/aa")
public String aa(Users user) {
System.out.println("GGG");
return "HH";
}
}
我是不得已才来问的,因为我知道,网上能查到的东西,就没必要麻烦各位,但是我真的没查到spring中的model概念是什么,现实当中开发都是按照上面这段代码这种开发的,根本不存在controller中有Model这个类型的参数,难道说springmvc中的model这个概念,是很多年以前的????我从接触springmvc到现在,至今都没遇见过网上那些,再controller中有model参数的情况,所以请问各位大神,model到底是个啥??
model是一种概念,而不是一种具体的参数或是其他的具体的体现,MVC是软件工程中一种常用的规范的设计模式,model(模型层)-view(视图层)-controller(控制层)
简单来说,模型包括了你的数据模型(pojo或bean之类的东西)和业务模型(比如登陆,注册操作等),而controller层就是将你的model层能在view中表示出来,
假设你写的public String aa(Users user)中调用了一个简单业务是判断传入的user是否为空"return user!=null?user.tostring():new User().tostring",一般这样的逻辑代码
就写在业务层,controller返回的数据格式满足你自己的需求就行,符合了这种规范的就是一种MVC,好处代码好看,重用性好,松耦合等。
model是用来从后台封装数据到页面的,比如页面上展示一个“欢迎你,{userName}",你就可以用model封装一个userName进去,model.addAttribute("useNamer”,张三"" );页面就会显示”欢迎你,张三”
MODEL 就是你后台定的实体类,
你的代码是Controller,Controller一般需要连接service,service在和model连接,也可以直接使用model
model,entity都是一样的东西,就是模型,是封装实体的类
model就相当于一个作用域,存数据的,前台直接通过EL表达式调用数据
model 就是实体类对象,和数据库对应的。有啊 user就是
SpringMVC也是MVC中的一种,MVC是软件工程中一种常用的规范的设计模式,model(模型层)-view(视图层)-controller(控制层);
针对你的例子:model:就是你抽象出来的Users模型对象,view:就是你return的HH页面,controller:就是你的 aa方法
MVC这种模式很早就有了(Struts框架也是MVC模式)
上面关于MVC的意思解释的差不多了,如果你一定要问SpringMVC中的Model的话,springmvc接参数的时候可以自动注入model或者modelAndView这两个类,
@RequestMapping("/hehe")
public ModelAndView hehe(ModelAndView modelAndView) {
modelAndView.setViewName("hehe");
modelAndView.addObject("key", "value");
return modelAndView;
}
@RequestMapping("/aa")
public String aa(Model model) {
model.addAttribute("key","value");
return "HH";
}
这些value你都可以在页面通过key取出来。
model只有在前端请求有页面返回的时候用到,保存了你想要展示在页面上行的数据。这个model是只针对其返回页面的。
在java中返回前端页面的方法上添加参数 Model model
在方法体内用model.addAttribute("key",value);的方式添加数据
在对应的页面用ognl规则取model中的数据,例如$key
你的是controller层,model层在数据那一块
控制器,还有view视图层,以及controller控制层
哎呀 model 就是和 request 一样的用法 model.addAttribute("pageInfo", pageInfo); 或者你问的不是这个 那就是 model 层 就是实体层...
@RequestMapping("/vv1")
model简而言之就是模型,和数据相对应的实体类,有的放在domain,有的放在entity包下
springmvc处理两种请求的方式:
1、处理ajax请求,通用用于开发接口或者ajax调用,目前比较流行的(就是你发的那一段)
@ResponseBody
@RequestMapping("/aa")
public String aa(Users user) {
System.out.println("GGG");
return "HH";
}
@ResponseBody这个注解标明了这个方法返回的是一个字符串(或者json字符串),而不是一个页面view。
2、处理页面跳转请求,就是你访问一个controller方法,controller处理完成后跳转到一个jso页面,并展示数据。(就是你希望用到的model)
@RequestMapping("/aa")
public ModelAndView aa(Users user) {
System.out.println("GGG");
ModelAndView mv = new ModelAndView();//定义一个model和view对象
mv.addObject("entity", user);//model传递数据到页面,类似于request.setattrobute()
mv.setViewName("user/list");//跳转的view页面地址
return mv;
}
这个方法和上面的方法不同的是,少了@ResponseBody,添加了返回ModelAndView对象,即把model数据返回到制定的页面视图。
model简而言之就是模型,和数据相对应的实体类,有的放在domain,有的放在entity包下
Model理解为实体类,就是你要操作的实体。User user就是实体类。
作用域,等request域,reponse域,可以看一下