如何限制@ModelAttribute在某些网址上被调用

时间:2019-01-10 13:59:55

标签: spring spring-mvc controller

我很难阻止@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()。

0 个答案:

没有答案