Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jsf从一个结果到diff viewId的导航_Jsf_Navigation - Fatal编程技术网

jsf从一个结果到diff viewId的导航

jsf从一个结果到diff viewId的导航,jsf,navigation,Jsf,Navigation,我需要你的帮助! 我有一个jsf应用程序,现在有两个版本——一个用于移动设备,一个用于桌面浏览器。桌面页面位于文件夹/html中,移动页面位于文件夹/html/mobile中。我想要一个结果来决定到底显示哪些页面-从/html还是从/html/mobile。 我创建了会话属性isMobileBrowser,它指示我使用的浏览器 Boolean isMobileBrowser = (Boolean) session.getAttribute("isMobileBrowser"); if (i

我需要你的帮助! 我有一个jsf应用程序,现在有两个版本——一个用于移动设备,一个用于桌面浏览器。桌面页面位于文件夹/html中,移动页面位于文件夹/html/mobile中。我想要一个结果来决定到底显示哪些页面-从/html还是从/html/mobile。
我创建了会话属性isMobileBrowser,它指示我使用的浏览器

 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);
}
}

现在我想要这样的东西:

 <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>

*
clientadmin
//如果是移动的
/html/mobile/clientadmin.jsf
//如果桌面
/html/clientadmin.jsf
我怎样才能做得更好。我找到了NavigationHandler,但不明白它是如何工作的。我也尝试使用xml中的条件,但我认为它们不起作用(我使用JSF2.0)


任何帮助都将是巨大的!谢谢

如果您使用的是jsf2.0,则可以使用值表达式来表示。 参见JSF2.0规范中的第2.4.2.1章

如果使用Jsf1.2,则必须实现自定义ViewHandler。 看