有谁知道如何解决这个问题?这个想法是 - 应用程序包含两个项目,其中一个用于移动浏览器,另一个用于桌面,它们具有通用模型,用户必须根据他使用的设备通过相同的URL访问两个不同的项目。
#{requestContext.agent.type == 'desktop'? 'richmobile': 'mobile'}
这种EL用于根据设备改变蒙皮。据我所知,服务器应该大致相同吗?
答案 0 :(得分:0)
最初我创建了模型(包含带有核心逻辑的java文件)和TrinidadViewController(包含.jsf页面(使用trinidad组件构建),验证和区域设置包)项目。在我完成添加ADF浏览器项目的任务后(使用ADF面部公开相同的逻辑)。后来我被要求使用一个URL访问这两个项目。
解决方案:
管理重定向操作index.html文件已添加到项目中。如果浏览器获得这种URL - 127.0.0.1:7101/adf-mobile-browser-poc-TrinidadViewController-context-root/,它会自动重定向到index.html页面。 Index.html包含重定向操作代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript">
function redirect() {
if (!isMobile()) {
window.location="/adf-mobile-browser-poc-big-context-root/faces/first.jspx";
}else {
window.location="/adf-mobile-browser-poc-TrinidadViewController-context-root/faces/first.jsf";
}
}
function isMobile() {
return (navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/iPhone|iPad|iPod/i) || navigator.userAgent.match(/Opera Mini/i) || navigator.userAgent.match(/IEMobile/i))
};
</script>
</head>
<body onload="redirect()">
</body>
</html>
isMobile() - 检查当前平台是移动平台还是桌面平台。 Redirect() - 重定向到特定页面。整个事情看起来像: