我需要更改 a 的操作,因为我正在使用 JQuery load() 加载 div 中的 JSF 页面,但是当我按下保存按钮时,我完全为页面充电。
主页.jsf
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//ES"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets" lang="es"><!--<![endif]-->
<f:view contentType="text/html">
<h:head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<title>Sistema de Seguimientos de Ciclos de Calidad</title>
<meta name="description" content=""/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<!-- Libreria jQuery -->
<script type='text/javascript' src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<!-- Acción sobre el botón con id=boton y actualizamos el div con id=capa -->
<script type="text/javascript">
function cargar(desde)
{
$("#frame").load(desde);
}
</script>
</h:head>
<h:body link="#000033">
<ul>
<li><a href="#" onclick="cargar('/sistema.ciclos.calidad/modulos/input/dpu.jsf')">Desafios Propios de la Unidad</a></li>
</ul>
<div id="frame" >
</div>
</h:body>
</f:view>
</html>
当我按下保存时,此页面上的 dpu.jsf 会重新加载整个页面。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title></title>
</h:head>
<h:body>
<h:form id="formulario">
<h2>Meta</h2>
<h:panelGrid columns="2">
<h:outputLabel for="meta">Meta</h:outputLabel>
<h:inputTextarea id="meta" readonly="true" cols="30" rows="20" value="#{cmiDetalle.cmi.meta}"></h:inputTextarea>
<h:outputLabel for="nivel_logro">Nivel de Logro</h:outputLabel>
<h:selectOneMenu id="nivel_logro" value="#{cmiDetalle.cmi.nivelLogro}">
<f:selectItems value="#{util.nivelLogro}" var="nivel" itemLabel="#{nivel}" itemValue="#{nivel}"></f:selectItems>
</h:selectOneMenu>
<h:commandButton actionListener="#{cmiDetalle.updateCMI()}" value="Guardar"/>
</h:panelGrid>
</h:form>
</h:body>
</html>
查看页面的源代码,生成的表单有一个我没有放的动作。
<form id="formulario" name="formulario" method="post" action="/sistema.ciclos.calidad/modulos/input/cnaDetalle.jsf" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="formulario" value="formulario">
<h2>Criterio</h2><table>
<label for="formulario:criterio">
Citerio</label><textarea id="formulario:criterio" name="formulario:criterio" cols="20" rows="10" readonly="readonly">1-Revisión y validación del perfil a lo menos una vez al año</textarea><label for="formulario:nivel_logro">
Nivel de Logro</label>
<select id="formulario:nivel_logro" name="formulario:nivel_logro" size="1"> <option value="0">0</option>
<option value="25" selected="selected">25</option>
<option value="50">50</option>
<option value="75">75</option>
<option value="100">100</option>
</select>
<input type="submit" name="formulario:j_idt14" value="Actualizar"><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="6763485926333611189:-3375404461728497190" autocomplete="off">
</form>