0
我想在jsf中刪除al jsf組件,並在我更改組合框中的值並且不知道如何執行時重繪它。我需要它,因爲我有一些java ifs,它們在頁面中繪製不同的組件。如何在方法bean執行時重新繪製JSF頁面?
這是代碼:
<%
FacesContext facesContext = FacesContext.getCurrentInstance();
PreguntasBean preguntasBean = (PreguntasBean) facesContext
.getApplication()
.createValueBinding("#{PreguntasBean}")
.getValue(facesContext);
preguntasBean.buscaTipoPregunta();
%>
<h:outputText value="Selecciona un tipo de pregunta" />
<h:selectOneMenu
id="tipoSeleccionado" value="#{PreguntasBean.tipos}" valueChangeListener="#{PreguntasBean.muestraPregunta}" onchange="submit()">
<f:selectItems value="#{PreguntasBean.tiposValue}" />
</h:selectOneMenu>
<h:outputText value="Enunciado " />
<h:inputText value="#{PreguntasBean.preguntaParaGuardar.enunciado}" />
<%if(preguntasBean.getValor().equals("1") || preguntasBean.getValor().equals("2") || preguntasBean.getValor().equals("3")){ %>
<%if(preguntasBean.getValor().equals("2")){ %>
<h:outputText value="Opcion 1" />
<h:inputText value="" />
<h:outputText value="Opcion 2" />
<h:inputText value="" />
<%} %>
<h:outputText value="Sentencia" />
<h:inputText value="#{PreguntasBean.sentencia}" />
<%if(preguntasBean.getValor().equals("3")){ %>
<h:outputText value="Texto fin" />
<h:inputText value="" />
<%} %>
<h:commandButton value="Añadir sentencia" action="#{PreguntasBean.addSentencia}"/>
<h:dataTable border="1" var="tablaSentencias" value="#{PreguntasBean.listaSentencias}" binding ="#{PreguntasBean.tabla}">
<h:column>
<f:facet name="header">
<h:outputText value="Sentencias" />
</f:facet>
<h:outputText value="#{tablaSentencias.sentencia}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Acción" />
</f:facet>
<h:commandButton value="Borrar" action="#{PreguntasBean.borraSentencia}" />
</h:column>
</h:dataTable>
<%} %>
所以當我改變selectOneMenu用於我想刪除所有outputtexts,輸入數據表......(不是VO,只是JSF標籤)。
哎喲,爲什麼JSF 1.2和JSP?如果您可以使用JSF 2.x和Facelets,例如與Primefaces結合使用,您的生活變得如此簡單。 JSF 1.2沒有內置的Ajax支持,這正是你正在尋找的。 – Gimby
我正在開發一個Alfresco應用程序,只支持JSF 1.2 :(這是主要問題 – Raider
在這個時代,除了通過javascript onChange事件重新渲染頁面之外,我不知道該怎麼指導您。我建議將Richfaces 3.3添加到您的技術堆棧中,以便爲JSF 1.2添加ajax支持,但由於它過時,不受支持,並且在現代IE版本中甚至無法正常工作,所以今天這不是好建議。 – Gimby