我想使用Primefaces Mobile和jsf2.0以及primefaces-3.0.M2制作表格,但是在jboss服务器上部署并在浏览器(桌面)上运行后,看起来并且感觉不是那么好。我错过了一些jar文件?还有任何模拟器,我可以检查和运行移动网页。我在http://www.primefaces.org/showcase-labs/mobile/index.jsf
使用展示示例答案 0 :(得分:1)
首先,您需要的只是Primefaces jar,但由于 M4 版本已经用完,您应该更新类路径(请注意,如果您使用 Netbeans ,那么库删除它有点草率,仔细检查lib
文件夹中只有一个库-M4。)
另外,请在此处发布您的代码,并小心使用新的命名空间:
xmlns:p="http://primefaces.org/ui"
xmlns:pm="http://primefaces.org/mobile"
答案 1 :(得分:1)
如果您的移动/没有移动应用程序是分开的,您必须在faces-config.xml中插入以下行
<application>
<default-render-kit-id>PRIMEFACES_MOBILE</default-render-kit-id>
</application>
如果您的移动/没有移动视图属于同一个应用程序
通过重写calculateRenderKitId API来编写一个viewhandler并决定 何时以移动模式显示页面。如果建议采用这种方法 您的移动和非移动页面在同一个应用程序中,您需要 即时切换渲染工具包(来自Primefaces Mobile Documentation)。
这是一个简单的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
要执行此操作,请点击此链接: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/