avrei bisogno di una mano per implementare una chiamata ajax ( o anche pseudo-ajax usando gli iframes).
Praticamente ho due combobox, di cui inizialmente solo una popolata; all'onchange dell'una si deve valorizzare l'altra con query su DB.
Purtroppo, però, ho possibilità di usare solo la versione 1.2 di JSF, per la quale non sono riuscito a trovare molti esempi.
Avevo fatto giusti un inizio, del tipo:
Codice: Seleziona tutto
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AJAX</title>
<script type="text/javascript">
function popolaCombo2 (){
alert('???');
}
</script>
</head>
<body>
<f:view>
<h:form id="formPrincipale">
<h:selectOneMenu id="combo1" value="#{bean.valueCombo1}" onchange="popolaCombo2()">
<f:selectItems value="#{bean.combo1}"/>
</h:selectOneMenu>
<h:selectOneMenu id="combo2" value="#{bean.valueCombo2}">
<f:selectItems value="#{bean.combo2}"/>
</h:selectOneMenu>
<h:commandButton value="avanti"></h:commandButton>
</h:form>
</f:view>
</body>
</html>
Codice: Seleziona tutto
package testAjax;
import java.util.HashMap;
import java.util.Map;
public class Bean {
private Map <String, String> combo1 = new HashMap();
private Map <String, String> combo2 = new HashMap();
private String valueCombo1 = "";
private String valueCombo2 = "";
public Bean(){
combo1 = new HashMap();
combo2 = new HashMap();
}
public Map getCombo1 (){
combo1 = new HashMap<String, String>();
combo1.put("1", "1");
combo1.put("2", "2");
/* ecc */
return combo1;
}
public Map getCombo2 (){
return new HashMap<String, String>();
/*if (this.combo1 == null)
return null;
if (this.valueCombo1.equals("1")){
combo2.put("3", "3");
} else {
combo2.put("4", "4");
}
return combo2;
*/
}
public String getValueCombo1() {
return valueCombo1;
}
public void setValueCombo1(String valueCombo1) {
this.valueCombo1 = valueCombo1;
}
public String getValueCombo2() {
return valueCombo2;
}
public void setValueCombo2(String valueCombo2) {
this.valueCombo2 = valueCombo2;
}
}
