当前位置: 首页 > 知识库问答 >
问题:

如何在JSF 2.2中实现加载页面

王弘和
2023-03-14

我想在我的JSFWeb应用程序中实现一个像gmail这样的加载页面。

  1. 用户输入登录名和密码,我把他带到一个简单的进度条页面(加载应用程序页面)。
  2. 一旦进度条达到100%,应用程序页面就会显示出来。

(命中100%意味着它根据应用程序页面初始化的进度获得进度值)。

现在,我真正需要什么来实现这一点,支持bean范围、facelets数量、faces配置。。

其他信息:

>

@WebFilter(filterName=“AuthFilter”,urlPatterns={“*.xhtml”})将未连接的用户重定向到登录页面。

这是我到目前为止尝试过的,但没有运气(应用程序在加载页面中停止)。

login.xhtml支持bean userBean(会话范围)。

userBean.doLogin()  ==> return "loaderPage";

LoaderPage.xhtml没有后备bean

<h:body>
    <p:progressBar widgetVar="pbAjax" ajax="true"
                   value="#{dyna.progress}"
                   labelTemplate="{value}%"
                   styleClass="animated">  
        <p:ajax event="complete" listener="#{userBean.onComplete}" />  
    </p:progressBar>  
</h:body>

戴娜。进步

这就是我在loadingPage的进度条上设置值的方式。xhtml

@ManagedBean(name = "dyna", eager = true)
@SessionScoped
@PostConstruct
public void init() {
    try {
        progress = 0;
        etatdateOptions = ListsMaker.getDateFilters();
        progress = 10;
        optionspatState = ListsMaker.getPatientStates();
        progress = 20;
        optionsCotpatState = ListsMaker.getPayementStates();
        progress = 30;
         ...}

这是faces配置

<faces-config version="2.2"
          xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_2.xsd">

<navigation-rule>
    <from-view-id>/loader.xhtml</from-view-id>
    <navigation-case>
        <from-action>#{userBean.oncomplete}</from-action>
        <to-view-id>/AppPlace.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>

<navigation-rule>
    <from-view-id>/AppPlace.xhtml</from-view-id>
    <navigation-case>
        <from-action>#{dyna.killView}</from-action>
        <from-outcome>success</from-outcome>
          <to-view-id>/login.xhtml</to-view-id>
           <redirect>     
           </redirect>
       </navigation-case>
   </navigation-rule>

共有1个答案

袁元明
2023-03-14

看看Primeface提供的解决方案,即ProgressBar。在你的情况下,我不会使init()方法@PostConstruct,我会调用init()方法一旦客户端被转发到loaderPage.xhtml。从那时起,您可以调用getProgress()

 类似资料:
  • 我要求在JSF2.2页面上输入2个输入值。我们正在使用Primefaces控件。然后通过h:command按钮将这些值提交给托管bean方法。 然后,基于这些值,我想将同一JSF页面上的一个单独的输出字段设置为一个特定的值。 因此,我目前的问题是尝试连接一个托管bean,以便它将一个值返回到我的JSF页面上的字段,在本例中,字段名是mgrs。主要的问题是,我要处理的是生成返回值的第三方库,我不确定

  • 我相信这是与我的配置有关,但我不知道它是什么。 我正在macOS High Sierra上使用IntelliJ IDEA Ultimate 2018.1。 这是我的pom.xl 和XHTML页面: 正如我上面提到的,

  • 问题内容: 我有一个PHP include,它需要一段时间才能加载,因为PHP必须获取很多数据。我不想放慢整个网页的加载,以等待包含此内容,那么如何使用ajax加载该包含内容呢?我不希望通过单击按钮来触发Ajax,而只是希望它在页面加载时加载包含,因此,如果您查看下面的示例,则会在显示内含代码的同时显示“更多HTML内容”。 php仍在加载中。 问题答案: 如果您使用的是jQuery,则可以使用他

  • 我是新来的。我想为我的flutter应用程序实现惰性加载功能,它使用sqflite数据库存储数据。在我的数据库中有1000+行。当应用程序打开时,我想加载10个项目。当我达到第10个数据时,然后加载下一个10个,以此类推。如何实现此功能??

  • 我尝试遵循return((JavascriptExecutor)driver.executescript(“return document.readystate”).equals(“complete”); 但它不起作用 基本上,上面的命令不能识别以下操作[testng]1535139249496 addons.productaddons信息发送请求到:https://aus5.mozilla.or

  • 问题内容: 我已经通过Ajax调用通过隐藏的iframe读取了Facebook加载页面的地方…这是真的吗? 问题答案: Facebook使用他们称为BigPipe的东西,它将页面分成一堆小小的“小页面”,这些小页面分别通过AJAX加载。 在下图中,浅蓝色突出显示的区域是单个的小页面。