Java 我需要一个按钮来执行一个动作,但不';t触发验证或刷新页面(JSF2.0)

Java 我需要一个按钮来执行一个动作,但不';t触发验证或刷新页面(JSF2.0),java,jsf,jakarta-ee,jsf-2,java-ee-6,Java,Jsf,Jakarta Ee,Jsf 2,Java Ee 6,我需要您向我推荐一个JSF组件,它可以在以下场景中提供帮助(我将首先粘贴一个图像,帮助我解释): 您在图像中看到的这个页面是一个注册页面,每个面板都有不同的字段和小工具,当单击register按钮时,一个新用户被保存到数据库中 我遇到的问题是显示按钮。单击每个面板顶部的按钮时,应显示一个面板并隐藏另一个面板,但它们不得触发字段验证 我使用属性“validator”(与支持bean方法相结合)进行字段验证,这是大多数JSF输入字段所具有的。 现在你看到的所有东西都在一个h:表单中 -我应该如何显

我需要您向我推荐一个JSF组件,它可以在以下场景中提供帮助(我将首先粘贴一个图像,帮助我解释):

您在图像中看到的这个页面是一个注册页面,每个面板都有不同的字段和小工具,当单击register按钮时,一个新用户被保存到数据库中

我遇到的问题是显示按钮。单击每个面板顶部的按钮时,应显示一个面板并隐藏另一个面板,但它们不得触发字段验证

我使用属性“validator”(与支持bean方法相结合)进行字段验证,这是大多数JSF输入字段所具有的。 现在你看到的所有东西都在一个h:表单中

-我应该如何显示一个面板并隐藏另一个面板,而不触发正在隐藏的面板的验证

-除了h:commandLink或h:commandButton(它们触发验证)之外,还有其他选择吗

-将每个面板放在不同的h:form中就可以做到这一点?(这是允许的吗?)


-您认为最好的方法是什么?

您知道immediate属性,允许在不更改数据的情况下刷新


不幸的是,它不记得输入的更改,因此您可能会在您的操作中显式地完成验证,而不是由JSF本身完成验证。

您知道immediate属性,允许在不更改数据的情况下进行刷新

不幸的是,它不记得输入的更改,因此您可能会在您的操作中显式地完成验证,而不是由JSF本身完成

-我应该如何显示一个面板并隐藏另一个面板,而不触发正在隐藏的面板的验证

使用两个
h:form

除了h:commandLink或h:commandButton(它们触发验证)还有其他选择吗

若要发表文章,你必须只使用它们

我会用它来达到这个目的

-我应该如何显示一个面板并隐藏另一个面板,而不触发正在隐藏的面板的验证

使用两个
h:form

除了h:commandLink或h:commandButton(它们触发验证)还有其他选择吗

若要发表文章,你必须只使用它们


为此,我会使用p:primefaces选项卡,然后将您的内容(注册面板)放在单独的选项卡中,对两个选项卡使用单独的表单,这将解决您的问题

e、 g


使用p:primefaces选项卡视图,然后将内容(注册面板)放在单独的选项卡中,对两个选项卡使用单独的表单,这将解决您的问题

e、 g


对于面板的切换,为什么不使用JavaScript

<h:commandButton value="Show panel 1" onclick="$('#panel1').hide();$('#panel2').show();return false;"/>

返回false将限制页面提交,因此页面不会刷新,并且由于没有数据发布回服务器,验证阶段将永远不会执行


一句话:我想这可以在客户端自己处理。

对于面板的切换,为什么不使用JavaScript

<h:commandButton value="Show panel 1" onclick="$('#panel1').hide();$('#panel2').show();return false;"/>

返回false将限制页面提交,因此页面不会刷新,并且由于没有数据发布回服务器,验证阶段将永远不会执行


一句话:我想这是如何在客户端处理的。

是否可以在不刷新的情况下完成?关于f:ajax组件,它能帮助我吗?如果是,怎么做?我不明白你取消验证是什么意思。我需要它像现在一样工作。正如我所说,为了避免触发它,我所做的是使用不同的表单,这是有效的,但现在的问题是在点击顶部的按钮时隐藏和显示每个表单。让你的问题吸引巴卢斯-他知道他在谈论什么,如果他回答,就按照他的建议去做。这可能不刷新就可以完成吗?关于f:ajax组件,它能帮助我吗?如果是,怎么做?我不明白你取消验证是什么意思。我需要它像现在一样工作。正如我所说,为了避免触发它,我所做的是使用不同的表单,这很有效,但现在的问题是在单击顶部的按钮时隐藏和显示每个表单。让你的问题吸引巴卢斯-他知道他在说什么,如果他回答,就按照他的建议去做。谢谢,这看起来不错,但我不能使用richfaces,我已经使用了primefaces,我尽量避免将它们混合在同一个项目中,我过去有过冲突。对于我的面板,我使用的是p:panel of primefaces。我将尝试这两种形式的东西。如果重新设计页面,我可以在不刷新的情况下显示和隐藏面板吗?(可能是ajax?)我会使用
rerendered
属性来重新渲染,不知道它是否是RF Specific,听起来不错。当单击其中一个按钮时,我如何将渲染值设置为true?这似乎是RF的一个功能,如果可以的话,谢谢,看起来不错,但我不能使用richfaces,我已经使用了primefaces,我尽量避免将它们混合在同一个项目中,我过去有过冲突。对于我的面板,我使用的是p:panel of primefaces。我将尝试这两种形式的东西。如果重新设计页面,我可以在不刷新的情况下显示和隐藏面板吗?(可能是ajax?)我会使用
rerendered
属性来重新渲染,不知道它是否是RF Specific,听起来不错。当单击其中一个按钮时,我如何将渲染值设置为true?这似乎是RF的一个功能,如果可以,两个面板的表单内容是否与每个面板相关