J'ai besoin de votre aide! J'ai une application jsf, qui a maintenant 2 versions - une pour les navigateurs mobiles et une pour les navigateurs de bureau. Les pages pour le bureau se trouvent dans le dossier/html, et pour mobile -/html/mobile. Je veux un résultat décider quelles pages exactement montrer - de/html ou de/html/mobile.
Je crée l'attribut de session isMobileBrowser - qui indique quel navigateur j'ai.jsf navigation d'un résultat à diff viewId
Boolean isMobileBrowser = (Boolean) session.getAttribute("isMobileBrowser");
if (isMobileBrowser == null) {
Enumeration e = req.getHeaders("user-agent");
while(e.hasMoreElements()) {
String str = e.nextElement().toString().toLowerCase();
if (str.indexOf("mobile") != -1) {
isMobileBrowser = new Boolean(true);
System.out.println("MOBILE BROWSER");
} else {
isMobileBrowser = new Boolean(false);
System.out.println("STANDARD BROWSER");
}
session.setAttribute("isMobileBrowser", isMobileBrowser);
}
}
Et maintenant, je veux quelque chose comme ça:
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>clientadmin</from-outcome>
// if mobile
<to-view-id>/html/mobile/clientadmin.jsf</to-view-id>
// if desktop
<to-view-id>/html/clientadmin.jsf</to-view-id>
</navigation-case>
</navigation-rule>
Comment puis-je faire mieux. Je trouve NavigationHandler, mais ne comprends pas comment cela fonctionne. J'essaie aussi avec des conditions dans xml - mais je ne pense pas qu'elles fonctionnent (j'utilise jsf 2.0).
Toute aide sera importante! Merci!