JSP代码导致同一文本一处显示为超链接一处为普通文本的问题排查
问题成因
这个现象和JSP服务端渲染逻辑无关,问题出在前端的CSS/JS规则对特定ID的元素做了特殊处理,具体原因如下:
- 首先确认服务端输出逻辑无差异:
textbox.jsp和listbox.jsp中都用<spring:message code="${explanation}" />渲染提示文本,输出的原始内容都是纯文本if electric, enter 0,不存在服务端自动加超链接的逻辑。 - 带
id="informaion"时变成超链接的原因:你的项目全局CSS或JS代码中,存在针对#informaion这个ID的匹配规则,常见两种情况:- CSS给该ID的元素设置了类似超链接的样式:比如蓝色字体、下划线,视觉上和超链接完全一致,但本质还是普通文本,所以点击没有跳转效果,和你描述的现象完全匹配。
- 全局JS逻辑监听了该ID的元素,动态给内部文本套了无
href属性的<a>标签,也会出现看起来是超链接但点击无反应的情况。
- 移除ID后恢复正常的原因:上述CSS/JS规则只匹配带有
id="informaion"的元素,移除ID后就不会触发对应的样式或脚本处理,文本自然显示为普通样式。
你可以全局搜索项目中的CSS、JS文件,查找#informaion相关的代码,就能定位到具体的触发规则。另外注意这个ID本身是拼写错误的,正确拼写应为information,大概率是之前开发人员遗留的问题。
内容的提问来源于stack exchange,提问作者runnerpaul
相关产品推荐
相关产品推荐

