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