视图中已使用的组件的 JSP 异常
Posted
技术标签:
【中文标题】视图中已使用的组件的 JSP 异常【英文标题】:JSP exception for component already used in view 【发布时间】:2022-01-07 09:15:07 【问题描述】:我在 WAS 8.5 上运行的 java 应用程序中遇到此异常:
原因:javax.servlet.jsp.JspException:组件 ID 'ResultURL' 已在视图中使用。
我认为这意味着某些 jsp 有多个组件,其 ID 为 ResultURL,但我检查了一下,只有一个 jsp 文件包含此文件,并且没有重复的迹象。这可能是什么原因造成的?
这是组件:
<h:inputHidden id="ResultURL" value="http://localhost:9080/HP_Web/DefaultLoginServlet"/>
【问题讨论】:
您能否直接或间接多次包含该文件? 可能是一个愚蠢的问题,但我该如何检查呢? 好吧,您可以手动跟踪所有导入和包含,或者可能有一些我不知道的工具。更务实的是,您可以尝试向 jsp 添加一些特殊输出,注释掉在页面呈现之前出现问题的标签,然后在结果页面中查找特殊输出(例如一些文本)(使用浏览器开发工具)。如果您在 jsp 应该只包含一次时找到特殊序列,如果您没有找到它,您可能做错了并且输出未呈现,如果您多次找到它,那么该位置应该会提示您在哪里查看进一步。 谢谢。我会试试的。昨晚我在想,这段代码在其他环境中运行,所以多个包含可能不是问题。 Def值得排除。 WAS 上是否存在类似缓存问题的可能性? 如果完全相同的代码在另一个应用服务器上运行,那么这可能是 WAS 特有的。我无法想象这将是一个缓存问题,但我也不能排除它。尝试寻找模式,例如你有其他相同类型的标签,它是否适用于不同的 id,它是否适用于不同的值? 【参考方案1】:在应用程序中,原始行已被注释掉并添加了新行。网络服务器似乎无法识别代码注释,因此认为有两行具有相同的 ID。当我删除注释掉的行时,错误消失了。
【讨论】:
以上是关于视图中已使用的组件的 JSP 异常的主要内容,如果未能解决你的问题,请参考以下文章