gpt4 book ai didi

forms - 表单组件的祖先中需要有一个 UIForm。建议 : enclose the necessary components within

转载 作者:行者123 更新时间:2023-12-03 02:13:26 25 4
gpt4 key购买 nike

这是我的表格:

<form action="j_security_check">
<h:panelGrid columns="2" bgcolor="#eff5fa" cellspacing="5" frame="box" styleClass="center">
<h:outputLabel value="User ID:"/>
<h:inputText id="j_username" tabindex="1" />
<h:outputLabel value="Password:"/>
<h:inputSecret id="j_password"/>
<h:outputLabel value=""/>
<h:commandButton id="login" value="Login"/>
</h:panelGrid>
</form>

它在 Glassfish 3.0.1 上运行良好,但从 Glassfish 3.1 b2 开始,它将此警告显示为 FacesMessage在 JSF 页面中:

The form component needs to have a UIForm in its ancestry. Suggestion: enclose the necessary components within <h:form>

如果我更改<form action="j_security_check"><h:form> ,它没有修复它,我必须放置 <h:form>里面<h:panelGrid> .

最佳答案

这只是一个警告,而不是错误。警告通常是为了告知开发人员可能不会立即导致技术错误/问题的不可预见的情况/条件。任何事情都可能完美地工作,但行为/结果可能不符合开发人员的意图。例如,新手开发人员可能不小心使用了 <form>而不是<h:form> 。这样的警告很有帮助。

在您的特定情况下,您只是被迫使用 <form>因为需要提交到非 JSF 服务。作为经验丰富的开发人员,您知道它是合法有效的。您可以忽略此警告。此警告仅在 javax.faces.PROJECT_STAGE 时出现设置为Development无论如何,当它设置为 Production不会出现.

但是,当表单与其输入子项之间存在另一个组件(例如 panelgrid)时,它仍然显示警告,这对我来说是一个错误。我会把这件事报告给 Mojarra 的人。看起来好像只检查直接父级而不是所有父级。 更新:已按照 Mojarra 2.1.3/2.2 进行修复,另请参阅 issue 2147 .

顺便说一句,这不是 Glassfish 特有的。当然,较新的 GF 版本附带了较新的 Mojarra 版本,该版本已实现这些警告。另请参阅issue 1663 .

相关问题:

关于forms - 表单组件的祖先中需要有一个 UIForm。建议 : enclose the necessary components within <h:form>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com