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 的開發應該就沒有問題了~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM