Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml

 

Java Spring Boot VS .NetCore (一)来一个简单的 Hello World

Java Spring Boot VS .NetCore (二)实现一个过滤器Filter

Java Spring Boot VS .NetCore (三)Ioc容器处理

Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

Java Spring Boot VS .NetCore (五)MyBatis vs EFCore

Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml

Java Spring Boot VS .NetCore (七) 配置文件

Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security

Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

Java Spring Boot VS .NetCore (十一)自定义标签 Java Tag Freemarker VS .NetCore Tag TagHelper

前面已经介绍了操作做数据,接下来就介绍先展示数据 UI,当然UI可以做到前后端分离,这里以前后端为分离的情况作为例子

Spring Boot vs .NetCore

Spring中的视图及资源文件主要还是依赖于resources这个目录

下面有static(静态文件放置)、templates(模版目录)

而.NetCore里面静态文件资源都是放置在 wwwroot这个目录下,而其他的 通过Controller、 Views文件夹下的目录结构决定,里面还多了一个区域的概念

下面来看下Controller处理

Spring中的Controller处理

@Controller
public class TestController {

    @Resource
    public UserRepository _userRepository;

    @Autowired
    private UserMapper _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 = new PageRequest(page, size, sort);

    Page<UserModel>  modelList= _userRepository.findLYM(pageable);
//        List<UserModel> modelList = _userRepository.findAll();
        model.addAttribute("users", modelList);
        return  "user/list";
    }

    @RequestMapping(value = "/user/add",method = RequestMethod.GET)
    public String userAdd()
    {
        return  "user/add";
    }
    //添加用户
    @RequestMapping(value = "/user/add",method = RequestMethod.POST)
    public String userAdd(@Valid UserModel userParam,ModelMap map)
    {
        UserModel user=new UserModel();
        BeanUtils.copyProperties(userParam,user);
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        user.setRegTime(df.format(new Date()));
     // 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 class HomeController : Controller
    {

        SignInManager<IdentityUser> _signInManager;
        public HomeController(SignInManager<IdentityUser> signInManager)
        {
            _signInManager = signInManager;
        }
[Route("~/url")]
[HttpPost]
    public IActionResult Index() { ViewBag.Msg="这是信息"; return View(); } }

这里的 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 的开发应该就没有问题了~

原文地址:https://www.cnblogs.com/liyouming/p/9481495.html