我遇到了 Ajax 和 PrimeFaces 的问题。
页面应该做什么:
-用户在“Cas 1”和“Cas 2”(单选按钮)之间进行选择
- 验证案例后,Ajax 查询应显示“cas 1”的一个输入文本区域和“cas 2”的多个输入文本区域。输入文本区域中的文本应保存在数据库中
真正发生的事情:
-用户在“Cas 1”和“Cas 2”之间进行选择
- 输入文本区域第一次正确显示,然后如果您在“Cas 1”和“Cas 2”之间切换,则不会再次更改。此外,文本未保存在数据库中。
单独(没有单选按钮),“Cas 1”和“Cas 2”都可以正常工作
这是我正在使用的代码:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<h:form id="form">
<p:messages id="messages" showDetail="true" autoUpdate="true"/>
<h:panelGrid columns="1" >
<h:outputText value="Cas 1 : sélection « travail identique pour l’ensemble des CDC » ou un seul CDC" />
<h:outputText value=" " />
<h:outputText value="Cas 2 : sélection « travail différent suivant les CDC »" />
<p:selectOneRadio id="CasTrois" value="#{growlBean.casTrois}" required="true">
<f:selectItem itemLabel="Cas 1" itemValue="1" />
<f:selectItem itemLabel="Cas 2" itemValue="2" />
<p:ajax event="change" update="displayTrois" />
</p:selectOneRadio>
</h:panelGrid>
<h:panelGrid columns="1" id="displayTrois">
<c:if test="${growlBean.casTrois == 1}">
<h:outputText value="Expliquer succinctement en quoi consiste l’affaire." />
<h:outputText value="Donner notamment les informations liées à l’affaire mais ne figurant pas dans les CDC." />
<h:outputText value=" " />
<h:outputText value="Exemple" style="font-weight:bold; color: green"/>
<h:outputText value="Relance en quantité 1 de tous les sous-ensembles de tous les CDC" style="font-weight:bold; color: green"/>
<h:panelGrid columns="2">
<h:panelGrid columns="1">
<p:inputTextarea rows="8" cols="100" required="false" validatorMessage="Le champ doit être rempli"
value="#{growlBean.natureDesTravaux}" autoResize="true" >
<p:ajax event="keyup" listener="#{growlBean.setNatureDesTravaux(natureDesTravaux)}"/>
</p:inputTextarea>
</h:panelGrid>
</h:panelGrid>
</c:if>
<c:if test="${growlBean.casTrois == 2}">
<h:outputText value="Expliquer succinctement en quoi consiste l’affaire." />
<h:outputText value="Donner notamment les informations liées à l’affaire mais ne figurant pas dans les CDC." />
<p:dataTable id="TableauNatrureTravaux" value="#{growlBean.listCdcAffaire2}" var="detailCdc" >
<f:facet name="header">
<h:outputText value="Nature des Travaux"/>
</f:facet>
<p:column >
<h:panelGrid columns="1">
<p:outputLabel for="textTravaux" value="#{detailCdc.cdcId.outillageId.numeroOutil} #{detailCdc.cdcId.outillageId.designation}" />
<p:inputTextarea id="textTravaux" rows="8" cols="100" value="#{detailCdc.natureTravauxPourFla}"
autoResize="true" required="false" validatorMessage="test" >
<f:validateLength minimum="1" />
<p:ajax event="keyup" listener="#{detailCdc.setNatureTravauxPourFla(natureTravauxPourFla)}"/>
</p:inputTextarea>
</h:panelGrid>
</p:column>
</p:dataTable>
</c:if>
</h:panelGrid>
</h:form>
</h:body>
有人可以帮我尝试刷新页面并保存文本吗?