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