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

JSF Ajax直到页面刷新[重复]才呈现

洪彬
2023-03-14

以下是我的观点:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <title>Welcome</title>
</h:head>
<h:body>
    <h:form prependId="false" id="myForm">

        <h3>Please enter your name and password.</h3>

        Name: <h:inputText id="name" value="#{user.name}"/>

        Password: <h:inputSecret id="password" value="#{user.password}"/>

        <h:commandButton value="Login">
            <f:ajax execute="name password" render="greeting"/>
        </h:commandButton>

        <h:outputText id="greeting" value="Welcome + #{user.name}" rendered="#{user.nameRendered()}"/>
    </h:form>
</h:body>
</html>

任何我的用户。java:

@Named
@SessionScoped
public class User implements Serializable {

    private String name;
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public boolean nameRendered() {
        return this.name != null;
    }
}

因此,当我在Name字段中键入一些内容并单击提交时,我希望看到带有id“问候语”的outputText,因为user.name渲染()应该返回true。

但是,我需要在提交名称后刷新页面才能看到它。为什么可能是原因?为什么它需要页面刷新?没有页面刷新我怎么能做到呢?

共有1个答案

满博
2023-03-14

您无法刷新未在JSF树中呈现的组件,您需要将输出封装在始终存在的组件中:

<h:panelGroup id="greeting">
    <h:outputText value="Welcome + #{user.name}" rendered="#{user.nameRendered()}"/>
</h:panelGroup>

更多信息:

  • 为什么我需要将一个组件与渲染的一些嵌套在另一个组件中
 类似资料:
  • 我是新的编码,我有以下问题,而自动与硒使用Java: 我正在测试SaaS解决方案,需要刷新页面,直到某个项目出现在我的收件箱中。我不能简单地使用findelement语句,因为该项只在一段时间后出现,并且只在页面刷新时出现。此外,所有收件箱项目在标题中都有一个唯一的序列号。我将这个唯一的数字保存为字符串变量,我想使用这个字符串变量来查看在刷新页面几次后收件箱项目是否出现。 查找唯一字符串的代码:

  • 我在与反应和生命周期作斗争。我尝试实现一个非常简单的Next按钮,它显示下一个页面和下一组项。当我手动将状态偏移量更改为3时,页面将与下一项一起正确呈现。但是当我通过使用按钮使用setState时,新项不会加载。我想这和生命周期有关,但我还不明白。

  • 我正在尝试在不刷新页面的情况下上载图片。我使用了以停止刷新页面。但是,当我编写插入我的jQuery代码。这是我的密码: 有人知道如何阻止页面刷新和我的PHP代码被执行吗?

  • 我将我的React应用程序部署到了IONOS,它工作正常,但当我在浏览器中刷新页面时,我得到了404页面。 https://hopers.io 部署到firebase的同一个应用程序工作正常。 https://nft-marketplace-on-juno-chain.web.app 以下是我的路线: 任何评论都会很有帮助。

  • 我有一个像下面这样的Python脚本: 我以以下方式执行: 然后我检查是否有任何初始输出,但没有: 我至少希望在几秒钟后看到“开始”。即使等了几分钟,然后杀了它,我也没有输出。如果可能,我该如何解决这个问题?

  • 本文向大家介绍php采用session实现防止页面重复刷新,包括了php采用session实现防止页面重复刷新的使用技巧和注意事项,需要的朋友参考一下 如何防止页面重复刷新,在php环境下可以利用session来轻松实现。 b.php的代码 代码很简单,无非是把ip,以及通过POST方式提交到需要防刷新页面的数据经过md5加密后写入session中,再通过存储的session来判断刷新时间间隔从而