![](/img/trans.png)
[英]Not able to validate input text field rendered using ajax in jsf 2.0
[英]JSF 2.0 Input field rendered by Ajax cannot be used to input values?
<h:form>
Do you have a driving license?
<h:selectOneMenu value="#{requestScope.license}">
<f:selectItem itemLabel="Select..." itemValue=""/>
<f:selectItem itemLabel="Yes" itemValue="Y"/>
<f:selectItem itemLabel="No" itemValue="N"/>
<f:ajax render="@form"/>
</h:selectOneMenu>
<br/>
Enter driving license number:
<h:inputText value="#{requestScope.number}"
rendered="#{'Y' eq requestScope.license ? true : false}"/>
<br/>
<h:commandButton value="Submit"/>
<br/>
Your driving license number is: #{requestScope.number}
</h:form>
使用JSF 2.0实现非常常见的场景时出现问题
上面的JSF 2.0标记描述了一个非常常见的场景。
如果用户对“您是否拥有驾驶执照?”这一问题选择“是”,则Ajax会显示“输入您的驾驶执照号码:”字段。
如果用户输入驾驶执照号并按下按钮,输入数据应显示在底部(根据我的理解),但不会发生。
请有人解释一下。
您需要将属性绑定到一个值得满足的托管bean,并在h:outputText
显示该数字,以便可以重新呈现它。
这是改进。
<h:form>
<h:outputLabel for="license" value="Do you have a driving license?" />
<h:selectOneMenu id="license" value="#{bean.license}" required="true">
<f:selectItem itemLabel="Select..." itemValue="" />
<f:selectItem itemLabel="Yes" itemValue="Y" />
<f:selectItem itemLabel="No" itemValue="N" />
<f:ajax render="@form"/>
</h:selectOneMenu>
<br/>
<h:panelGroup id="input" rendered="#{bean.license eq 'Y'}">
<h:outputLabel for="number" value="Enter driving license number:" />
<h:inputText id="number" value="#{bean.number}" required="true" />
<br/>
</h:panelGroup>
<h:commandButton value="Submit" action="#{bean.submit}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
<br/>
<h:outputText value="Your driving license number is: #{bean.number}"
rendered="#{bean.license eq 'Y' and not empty bean.number}" />
<br/>
<h:messages />
</h:form>
用这样的bean:
@ManagedBean
@ViewScoped
public class Bean {
private String license;
private Integer number;
public void submit() {
System.out.println("Has license? " + license);
System.out.println("Submitted number: " + number);
}
// Add/generate getters and setters.
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.