如果您的移动/非移动应用程序是分开的,您必须在 faces-config.xml 中插入以下行
<application>
<default-render-kit-id>PRIMEFACES_MOBILE</default-render-kit-id>
</application>
如果您的移动/非移动视图在同一个应用程序中,您必须
通过重写 calculateRenderKitId API 编写一个视图处理程序并决定
何时在移动模式下显示页面。建议使用这种方法,如果
您的移动和非移动页面在同一个应用程序中,您需要
即时切换渲染套件(来自 Primefaces 移动文档)。
这里是一个简单的 ViewHandler 类,它使用 Spring Mobile 功能在移动页面和非移动页面之间切换。
import javax.faces.application.ViewHandler;
import javax.faces.application.ViewHandlerWrapper;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.mobile.device.Device;
import org.springframework.mobile.device.DeviceUtils;
import org.springframework.mobile.device.site.SitePreference;
import org.springframework.mobile.device.site.SitePreferenceUtils;
/**
* @author <a href="mailto:gesuino.napoli">Gesuino Napoli</a>
*
*/
public class MobileViewHandler extends ViewHandlerWrapper {
private ViewHandler wrapped;
public MobileViewHandler(ViewHandler wrapped) {
this.wrapped = wrapped;
}
@Override
public ViewHandler getWrapped() {
return this.wrapped;
}
@Override
public String calculateRenderKitId(FacesContext context) {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
Device device = DeviceUtils.getRequiredCurrentDevice(request);
SitePreference sitePreference = SitePreferenceUtils.getCurrentSitePreference(request);
if (device.isMobile() || sitePreference == SitePreference.MOBILE) {
return "PRIMEFACES_MOBILE";
}
return this.wrapped.calculateRenderKitId(context);
}
}
然后将 ViewHandler 注册到 faces-config.xml 中
<application>
<!-- <default-render-kit-id>PRIMEFACES_MOBILE</default-render-kit-id> -->
<view-handler>com.acme.myproject.web.util.viewhandler.MobileViewHandler</view-handler>
....
</application>
如果您想使用 android 模拟器测试您的应用程序,您可以下载并安装 sdk-android
- 安装 Android SDK
- 安装 ADT Eclipse 插件
- 创建 Android 虚拟设备 (AVD)
为此,请点击此链接:http://developer.android.com/sdk/index.html。
然后,按照这篇文章“让您的 Android 模拟器读取您的开发机器上的虚拟主机”-http://dillieodigital.wordpress.com/2012/03/19/soup-to-nuts-getting-your-android-emulator-to-read-virtual-hosts-on-your-development-machine/