Eclipse中JSP页面出现“invalid location of tag (a)”错误求助
解决JSP中"invalid location of tag (a)"错误及相关问题
先拆解两个明确的问题,一步步来解决:
第一个问题:a标签闭合错误
你写的 <a href="abc.html">abc</abc> 明显写错了闭合标签——应该是 </a> 而不是 </abc>,这个低级错误会直接导致标签解析失败,先把这个修正过来。
第二个核心问题:a标签嵌套在button里违反HTML规范
这就是Eclipse提示"invalid location of tag (a)"的根本原因。HTML标准明确规定,<button> 元素内部不能嵌套 <a> 标签,这种嵌套属于无效的DOM结构,浏览器解析时会出现异常,IDE的HTML验证器也会直接抛出错误。你之前尝试在form前后加div、tr/td的操作完全没触碰到这个核心问题,所以自然解决不了。
给你几个可行的修复方案:
- 方案1:用a标签模拟按钮(推荐,符合规范)
既然你用了Bootstrap,直接给a标签加上按钮类就能达到和button一模一样的视觉效果,还能正常实现跳转,代码改成这样:
<c:when test="${sessionScope.SIGNIN_ID == null}"> <a href="signinForm.html" class="btn btn-outline-success my-2 my-sm-0">signin</a> </c:when>
这种方式完全符合HTML规范,也不需要额外的JS,最省心。
- 方案2:保留button,用JS触发跳转
如果因为某些需求必须保留button标签,可以通过JavaScript的点击事件来实现页面跳转:
<c:when test="${sessionScope.SIGNIN_ID == null}"> <button class="btn btn-outline-success my-2 my-sm-0" onclick="window.location.href='signinForm.html'"> signin </button> </c:when>
把这两个问题都修正后,Eclipse的错误提示应该就会消失,页面功能也能正常工作了。
内容的提问来源于stack exchange,提问作者lee1707
相关产品推荐
相关产品推荐

