我很难阻止@ModelAttribute
被某些URL调用,例如在我的页面上找到的静态资源。这导致对这些方法的大约50%的调用是多余的。
我试图用@ModelAttribute
限制@GetMapping
,创建了多种方法来过滤网址。一切都没有取得重大成功。
GlobalController.java
@ControllerAdvice
public class GlobalControllerAdvice {
public static int k;
@Autowired
private UsersService usersService;
@ModelAttribute("unread")
public int unread(Principal principal) {
int unread = 0;
k++;
System.err.println("Inside unread " + k);
if (principal != null) {
User user = usersService.getWithUser(principal.getName(), "notifications");
for (Notification n : user.getNotifications())
if (!n.isRead())
unread++;
}
return unread;
}
}
featured.jsp
(重复调用未读代码的示例,即@ModelAttribute
方法。)
<img alt="genuine vote"
src="${pageContext.request.contextPath}/static/images/rating/emptyUpvote.png"
height="20" width="20">
预期结果应该忽略静态网址,而是调用unread()。