HSF302 - Làm việc với Spring Framework
Câu hỏi của môn
Đáp án đúng: "@ExceptionHandler in a controller handles exceptions for that controller; @ControllerAdvice can apply such handlers globally". Phương thức @ExceptionHandler khai báo trong một controller chỉ bắt ngoại lệ ném ra từ các handler của chính controller đó; muốn dùng chung cho nhiều controller, ta đặt các phương thức @ExceptionHandler vào một lớp @ControllerAdvice hoặc @RestControllerAdvice, và mặc định lớp này áp cho mọi controller, có thể thu hẹp bằng basePackages hay assignableTypes. Phát biểu "handle exceptions across all controllers by default; @ControllerAdvice limits them to one controller" nói ngược hoàn toàn vai trò của hai annotation. Phát biểu "only works with REST controllers; @ControllerAdvice only with MVC controllers" sai vì cả hai dùng được cho controller trả view lẫn controller REST. "Both are deprecated in favor of filters" sai vì cả hai vẫn là cơ chế chính thức trong Spring hiện nay; filter chạy trước DispatcherServlet nên không thay được việc xử lý ngoại lệ ở tầng handler.
Đáp án đúng: "th:if". th:if đánh giá một biểu thức, ví dụ th:
if="${user.admin}";nếu kết quả là true, Thymeleaf giữ lại thẻ cùng toàn bộ nội dung bên trong khi render, nếu false thì thẻ bị loại khỏi HTML đầu ra; th:unless làm điều ngược lại. Đây là cách hiển thị có điều kiện, như chỉ hiện nút xoá cho quản trị viên. "th:each" là thuộc tính lặp, nhân bản thẻ cho từng phần tử của một tập hợp, ví dụ mỗi sản phẩm một dòng bảng. "th:text" thay nội dung chữ của thẻ bằng giá trị biểu thức, có escape HTML. "th:href" tạo giá trị thuộc tính href cho liên kết, thường dùng cú pháp @{...} để sinh URL có context path. Không thuộc tính nào trong số đó quyết định việc thẻ có xuất hiện hay không.
ReactVue.jsThymeleafAngular