primefaces移动视图导航

时间:2014-01-15 13:43:29

标签: jsf-2 primefaces primefaces-mobile

我正在制作我的第一个主要移动网站,我对视图有一种奇怪的行为

<pm:page>
    <pm:view id="viewName">
        <ui:include src="home.xhtml" />
    </pm:view>
    <pm:view id="otherView">
        <ui:include src="viewWhereThereIsTheForm.xhtml" />
    </pm:view>
</pm:page>

如果我在第二个视图(otherView)中使用commandButton(h:或p :),页面将重新加载,并且每次显示第一个视图(viewName),即使表单中有必需的元素,按钮

示例:

<h:form>

    <h:inputText value="#{upload.something}" required="true" />

    <h:commandButton value="Upload" action="#{upload.upload()}" />
    //or
    <p:commandButton value="Send" action="#{upload.trySomething()}" />

</h:form>

我尝试了一些解决方案,但总是没有成功:

  • 在支持bean方法中返回“pm:viewName”
  • RequestContext.getCurrentInstance()。execute(“PrimeFaces.navigate('#viewName',{reverse:'true'})”);
  • FacesContext.getCurrentInstance()getExternalContext()重定向( “pageName.xhtml#的viewName”);

我唯一成功尝试的是

<p:commandButton value="Send" action="#{upload.tryLatLon()}" oncomplete="PrimeFaces.navigate('#viewName', {reverse : 'true'})" />

但它不适用于h:commandButton ...

我该如何停止?!

任何帮助将不胜感激!

(我正在使用PrimeFaces 3.5,PrimeFaces Mobile 0.9.4和JSF 2.2)

2 个答案:

答案 0 :(得分:0)

您可能需要在<pm:content>内添加<pm:view>标记。

我尝试使用<h:outputLink>在视图之间导航,如下面的代码所示:

  <pm:page title="Mobile">
       <pm:view id="mainView">
        <pm:header title="Music Inventory" />
         <pm:content>
           <h:form id="mainForm">                   
              <h:outputLink value="#artist?transition=slide">Artists</h:outputLink>
          </h:form>
        </pm:content>
      </pm:view>
        <pm:view id="artist">
          <pm:header title="Artists">
            <h:outputLink value="#mainView">Go to Home</h:outputLink>
          </pm:header>
          <pm:content>
             <h:outputText value="Some detail of artists" />
          </pm:content>
        </pm:view>
    </pm:page>

Primefaces Mobile网站上提供的一些示例无法正常显示。

答案 1 :(得分:0)

您应该将您的primefaces更新为5.0以获得更好的结果。我有同样的问题,我尝试了很多我无法解决的问题,将我的表面更新到最新版本解决了这个问题。

这是pom.xml文件中的一段代码,您可以将版本从3.5更新到5.0,只需更改版本标记中的数字。

         <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>5.0</version>
        </dependency>