gpt4 book ai didi

java - 为什么 validator 没有被调用?

转载 作者:行者123 更新时间:2023-11-30 04:58:14 24 4
gpt4 key购买 nike

在我的申请中,我有以下表格

<h:form id="addItemForm" enctype="multipart/form-data">                      
<h:panelGrid columns="3" border="1">
<h:outputText value="Name: " />
<h:inputText label="name"
id="name" value="#{addItem.name}"
required="true" requiredMessage="Name is required." />
<h:message styleClass="errorMsg" for="name" />

<h:outputText value="Description: " />
<h:inputText label="description"
id="description" value="#{addItem.description}"
required="true" requiredMessage="Description is required." />
<h:message styleClass="errorMsg" for="description" />

<h:outputText style="font-weight: bold" value="Picture : " />
<t:inputFileUpload label="picture"
id="picture" value="#{addItem.picture}"
required="true" requiredMessage="Picture is required." />
<h:message styleClass="errorMsg" for="picture" />

</h:panelGrid>
<h:commandButton value="Confirm" actionListener="#{addItem.addItem}"/>
<h:outputText id="status" value="#{addItem.statusMsg}" />
</h:form>

如果我输入说明并将名称保留为空白,然后单击“确认”按钮,则不会看到任何有关缺少名称的错误消息。一件奇怪的事情是我的页面似乎被刷新了,因为我输入的任何描述都消失了。此外,即使我同时输入名称和描述,actionListener 中的 addItem 函数也永远不会被调用。

昨天,一切正常。如果有人能告诉我我在这里可能做错了什么,我将非常感激。

最佳答案

删除enctype="multipart/form-data" 。 JSF 没有对其本身的支持。 JSF 依赖于提交的请求参数可用 application/x-www-form-urlencoded相反,这已经是默认的形式编码。您也没有 <input type="file">表单中的字段(既不是普通字段,也不是由第 3 方 JSF 组件表示),因此您不需要 multipart/form-data完全编码。

也许它以前有效,因为您有一些第三方组件库提供的过滤器,它可以解析和准备 multipart/form-data请求 JSF,但您已将其从 web.xml 中删除,或者您尚未将其包含在您的新项目中。

<小时/>

更新:您编辑了问题以包含 <t:inputFileUpload> 。好的,你应该保留enctype="multipart/form-data" 。根本不提交表单的唯一原因可能是 ExtensionsFilter已从 web.xml 中删除或初始化失败。添加它和/或读取 web 应用程序启动日志。就是负责解析multipart/form-data的人请求转换为 JSF 可用的参数。另一个可能的原因是您嵌套了多个 <h:form>组件相互插入会生成无效的 HTML。另请参阅commandButton/commandLink/ajax action/listener method not invoked or input value not updated .

关于java - 为什么 validator 没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7798206/

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