Comment faire pour supprimer jsf 2 cache?
j'ai jsf page web , c'est prend un peu de Chaînes de requête à partir de la page précédente .
mon problème est de cette page principale semble avoir mis en cache les valeurs , pas de changement Même j'ai changé les valeurs null , il est censé obtenir la valeur null à la page, mais il vieillit valeur .
donc mon Q est : comment faire pour que mon Principal jsf page se cache reloaded ou supprimés chaque fois que j'appelle ou j'appuyez sur la touche F ?
Mon JSF exemple de code que j'ai essayer :
<h:head style="width: 200px; ">
<f:facet name="first">
<meta http-equiv="X-UA-Compatible" content="edge, chrome=1" />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
</f:facet>
classe java :
String SID = FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("SID");
String from = FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("from");
String to = FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("to");
String class_id = FacesContext.getCurrentInstance()
.getExternalContext().getRequestParameterMap().get("class_id");
if (SID==null) {
try {
Dbconnection NewConnect = new Dbconnection();
Connection con = NewConnect.MakeConnect();
Statement stmt = con.createStatement();
ResultSet rs = stmt
.executeQuery("SELECT a.course_id, a.teacher_id, a.class_id, a.day_id, a.state, a.apssent_date, a.interval_id,s.student_id,s.first_name FROM student AS s INNER JOIN apsent AS a ON s.student_id = a.student_id where apssent_date between '"
+ from
+ "' and '"
+ to
+ "' and a.class_id = "
+ Integer.parseInt(class_id));
while (rs.next()) {
ids.add(rs.getInt(8));
names.add(rs.getString(9));
intervals.add(rs.getInt(7));
teachers.add(rs.getInt(2));
dates.add(rs.getString(6));
state.add(rs.getString(5));
}
} catch (Exception ex) {
System.out.println(ex);
}
}
System.out.println(SID + from + class_id + to);
if (class_id==null) {
try {
Dbconnection NewConnect = new Dbconnection();
Connection con = NewConnect.MakeConnect();
Statement stmt = con.createStatement();
ResultSet rs = stmt
.executeQuery("SELECT a.course_id, a.teacher_id, a.class_id, a.day_id, a.state, a.apssent_date, a.interval_id,s.student_id,s.first_name FROM student AS s INNER JOIN apsent AS a ON s.student_id = a.student_id where apssent_date between '"
+ from
+ "' and '"
+ to
+ "' and s.student_id = " + SID);
while (rs.next()) {
//System.out.println(rs.getInt(1));
ids.add(rs.getInt(8));
names.add(rs.getString(9));
intervals.add(rs.getInt(7));
teachers.add(rs.getInt(2));
dates.add(rs.getString(6));
state.add(rs.getString(5));
}
} catch (Exception ex) {
System.out.println(ex);
}
}
carsSmall = new ArrayList<Car>();
populateRandomCars(carsSmall, ids.size(), ids, names,
intervals, teachers, dates, state);
}
- Est votre bean SessionScoped?
Vous devez vous connecter pour publier un commentaire.
La
<meta http-equiv>
tags sont utilisés uniquement lorsque le fichier HTML en question est ouvert à partir d'un non-HTTP ressources, telles que les locaux de disque système de fichiers (viafile://
URI) et non pas lorsque le fichier HTML en question est ouvert à partir d'un véritable ressource HTTP (viahttp://
URI). Au lieu de cela, le vrai-têtes de réponse HTTP en tant que définie viaHttpServletResponse#setHeader()
sont été utilisés.Donc, dans le cas de votre page JSF, ces balises sont seulement interprété lors de la JSF page est ouverte dans le navigateur internet et sa sortie HTML est de l'utilisateur enregistré dans un fichier HTML via le contrôle webbrowser Fichier > Enregistrer sous puis rouvert en double-cliquant sur le fichier dans l'explorateur de fichiers.
Donc, concrètement, votre problème est probablement causé, parce que ces
<meta http-equiv>
balises sont ignoré. Vous devez définir ces en-têtes droites sur la réponse HTTP au lieu de dans le code HTML de la tête. Vous pouvez utiliser un filtre de servlet pour que. Dans la suite "Voir aussi" les liens que vous pouvez trouver un béton exemple de code.Voir aussi:
Sans rapport avec du béton de problème, votre code JDBC est une fuite de ressources. C'est un grave problème. Votre JDBC va cesser de fonctionner après un certain temps. N'oubliez pas de correctif ainsi.