按钮和输入的立即属性

时间:2015-11-02 09:28:20

标签: jsf-2

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

当命令按钮具有immediate属性时,其所有操作,转换和验证都将在ApplyRequestPhase中为按钮发生。

当输入具有立即属性时,类似的转换,验证以及所有事情都将在ApplyRequest阶段针对该输入发生。

但是我的问题就像两个命令按钮和输入文本都有立即属性然后我可以在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;
    }
}

日志

  • 来到REST之前的RESTORE_VIEW 1
  • 来到后台的RESTORE_VIEW 1
  • 来到APPLP前的APPLY_REQUEST_VALUES 2
  • Inside TestMetod ......
  • 属性布尔值:false
  • 属性String2:null
  • 属性String3:null
  • 来到后期的APPLY_REQUEST_VALUES 2
  • 来到RENDER_RESPONSE 6 beforePhase
  • 来到RENDER_RESPONSE 6 afterPhase

Screenshot & input

由于 马尼万南

0 个答案:

没有答案