前面已经介绍了操作做数据,接下来就介绍先展示数据 UI,当然UI可以做到前后端分离,这里以前后端为分离的情况作为例子
Spring Boot vs .NetCore
Spring中的视图及资源文件主要还是依赖于resources这个目录
下面有static(静态文件放置)、templates(模版目录)
而.NetCore里面静态文件资源都是放置在 wwwroot这个目录下,而其他的 通过Controller、 Views文件夹下的目录结构决定,里面还多了一个区域的概念
下面来看下Controller处理
Spring中的Controller处理
@Controllerpublic classTestController {
@ResourcepublicUserRepository _userRepository;
@AutowiredprivateUserMapper _userMapper;//用户列表
@RequestMapping("/user/list")public String userList(Model model,@RequestParam(value = "page", defaultValue = "0") Integer page,
@RequestParam(value= "size", defaultValue = "6") Integer size)
{
Sort sort= new Sort(Sort.Direction.DESC, "id");
Pageable pageable= newPageRequest(page, size, sort);
Page modelList=_userRepository.findLYM(pageable);//List modelList = _userRepository.findAll();
model.addAttribute("users", modelList);return "user/list";
}
@RequestMapping(value= "/user/add",method =RequestMethod.GET)publicString userAdd()
{return "user/add";
}//添加用户
@RequestMapping(value = "/user/add",method =RequestMethod.POST)publicString userAdd(@Valid UserModel userParam,ModelMap map)
{
UserModel user=newUserModel();
BeanUtils.copyProperties(userParam,user);
SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
user.setRegTime(df.format(newDate()));//UserModel result= _userRepository.save(user);
_userMapper.insert(user);return "user/add";
}
}
通过 注解 @Controller来标明这个类是一个Controller控制器类@RequestMapping 指定相关方法的请求路由地址以及请求方式
return 到对应的视图上就ok了,需要视图路径标明 ModelMap 对象处理页面数据对象
如:
model.addAttribute("users", modelList);
页面上会存在 users数据对象模型,这点类是与.NetCore 中的 ViewData["users"] \ ViewBag.Users 等操作
.NetCore 中的Controller处理
.NetCore 中其实是通过后缀名来完成的,在创建的时候必须以Controller结束,通过控制器与视图之间的关系完成对应的Invoke操作,这里不过多的说明...
public classHomeController : Controller
{
SignInManager_signInManager;public HomeController(SignInManagersignInManager)
{
_signInManager=signInManager;
}
[Route("~/url")]
[HttpPost]publicIActionResult Index()
{
ViewBag.Msg="这是信息";returnView();
}
}
这里的 Views文件夹下需要 Home文件夹,而Home文件夹下 需要有 Index.cshtml 视图文件 这是对应起来的 Action的名称 即为视图名称,这样才能保证正常的访问
关于协议请求方式
Spring Boot通过 @RequestMapping(value = "/user/add", method = RequestMethod.POST) 默认是GET
.NetCore 通过在Action上添加 [HttpPost] 标签来实现 当然 也通过 [Route("url")] 标签来指定请求路由地址, 默认也是GET方式请求
处理页面就需要了解 thymeleaf 模版的使用语法规则了 这里不做介绍了
西门看下做的一个列表功能效果
实现到这里做一个Java Spring Boot 的开发应该就没有问题了~