Jsf 2 按钮和输入的立即属性

Jsf 2 按钮和输入的立即属性,jsf-2,Jsf 2,我已经开始学习JSF。我从oracle fourm那里了解到 当命令按钮具有immediate属性时,其所有操作、转换和验证都将在按钮的ApplyRequestPhase中进行 当输入具有immediate属性时,类似地,转换、验证和所有事情都将在该输入的ApplyRequest阶段发生 但我的问题是,命令按钮和输入文本都有immediate属性,那么当我单击按钮时,我能在ApplyRequest阶段获得输入文本的值吗 如果为否,那么为什么输入会出现这种行为? 如果是,则在我的样本中不起作用

我已经开始学习JSF。我从oracle fourm那里了解到

当命令按钮具有immediate属性时,其所有操作、转换和验证都将在按钮的ApplyRequestPhase中进行

当输入具有immediate属性时,类似地,转换、验证和所有事情都将在该输入的ApplyRequest阶段发生

但我的问题是,命令按钮和输入文本都有immediate属性,那么当我单击按钮时,我能在ApplyRequest阶段获得输入文本的值吗

如果为否,那么为什么输入会出现这种行为? 如果是,则在我的样本中不起作用

   <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    JSF Immediate Sample
</h:head>
<h:body>
    <h:form>
    <h:messages globalOnly="true" showDetail="true" showSummary="true"/>
        <h:panelGrid border="2" columns="2">
        <h:outputText value="Enter Data (Str - Boo)" />
        <h:inputText value="#{classicBean.propBoolean}" immediate="true"/>
        <h:outputText value="Enter Data" />
        <h:inputText value="#{classicBean.propString2}" />
        <h:outputText value="Enter Data (Immediate)" />
        <h:inputText value="#{classicBean.propString3}" immediate="true"/>


        <h:commandButton value="ImmediateButton" action="#{classicBean.testMethod}" immediate="true" />
        <h:commandButton value="CommandButton"  action="#{classicBean.testMethod}" />
        </h:panelGrid>
    </h:form>
</h:body>
</html>



public class ClassicManagedBean {

    private boolean propBoolean;
    private String propString;
    private String propString2;
    private String propString3;
    private String propString4;
    private Integer propInteger;


    public String testMethod() {
        System.out.println("Inside TestMetod......");
        System.out.println("Property Boolean :"+propBoolean);
        System.out.println("Property String2 :"+propString2);
        System.out.println("Property String3 :"+propString3);
        return null;
    }
}
日志 来恢复前一阶段的视图1 来恢复_视图1后阶段 在第二阶段之前,开始应用\u请求\u值2 内部测试方法。。。。。。 属性布尔值:false 属性String2:null 属性String3:null 在第2阶段后开始应用\u请求\u值 在第6阶段之前提交_响应 来呈现_响应6后阶段 谢谢
Manivannan

如果要检索输入字段的值,必须通过ajax提交它们。当在命令按钮上使用immediate时,您没有提交整个表单,您只需执行该按钮,而不提交任何输入。您只是跳过了验证。您好。。谢谢你的回复。但是我不明白为什么我们需要通过ajax提交它们。无论如何,输入字段和按钮都具有相同的立即属性。在ApplyRequest阶段执行所有处理都是很困难的,不是吗。。?