我已经开始学习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;
}
}
由于 马尼万南