HTML is inordinately difficult to check, since the HTML standard is not as rigorous as XML, and on top of that, no few frameworks compound the issue by attaching new tags and attributes to stock HTML - taking advantage of the rule that says that anything an HTML client cannot understand it should silently ignore.
If you have JSP and HTML code in the same file, the job becomes virtually impossible, since not only does the analyzer have to flip-flop between 2 radically different "languages", the JSP code can be emitting HTML internally. The IDE-based editors make a valiant attempt at it, but often have slow performance and/or bugs.
For best results, use xhtml instead of basic HTML, and don't mix in JSP code.
As for actual checkers, I often use HTML-tidy, which is available as an IDE plug-in. If there isn't a Maven mojo for tidy, I think it would probably be easy to create one.
An IDE is no substitute for an Intelligent Developer.