Java 在执行方法bean时,如何重新绘制JSF页面?
我想删除jsf中的所有jsf组件,当我更改组合框中的值并且不知道如何做时,重新绘制它。我需要它,因为我有一些java ifs,它们在页面中绘制不同的组件 代码如下:Java 在执行方法bean时,如何重新绘制JSF页面?,java,jsf-1.2,Java,Jsf 1.2,我想删除jsf中的所有jsf组件,当我更改组合框中的值并且不知道如何做时,重新绘制它。我需要它,因为我有一些java ifs,它们在页面中绘制不同的组件 代码如下: <% FacesContext facesContext = FacesContext.getCurrentInstance(); PreguntasBean preguntasBean = (PreguntasBean) facesContext .getApplication()
<%
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>
<%} %>
因此,当我更改SelectOne菜单时,我想删除所有输出文本、输入、数据表。。。(不是VO,只有jsf标记)。只需要删除条件并使用它
rendered="#{PreguntasBean.valor =='3'}"
哎哟,为什么是JSF1.2和JSP?如果您可以使用JSF2.x和Facelets,例如与Primefaces结合使用,您的生活将变得更加轻松。JSF 1.2没有内置的Ajax支持,这正是您想要的。我正在开发一个Alfresco应用程序,只支持JSF 1.2:(这是当今时代的主要问题,除了通过javascript onChange事件重新提交页面外,我不知道该给你什么建议。5年前,我建议将Richfaces 3.3添加到你的技术堆栈中,以将ajax支持添加到JSF 1.2中,但这在今天并不是一个好建议,因为它已经过时,不受支持,甚至不存在。)在现代IE版本中正常工作。不能使用Js,我在onchange事件中提交,我不能添加Richfaces或使用ajax,因为alfresco讨厌它。在这一点上,我把alfresco和垃圾放在外面,并开始研究像样的最新工具来使用。