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

JSF中的条件渲染[重复]

龙玺
2023-03-14

您好,我有以下代码可以有条件地在我的页面中呈现组件:

<h:commandButton action="#{Bean.method()}"  value="Submit">
   <f:ajax execute="something" render="one two" />
</h:commandButton>

<p><h:outputFormat rendered="#{Bean.answer=='one'}" id="one" value="#{messages.one}"/></p>
<p><h:outputFormat rendered="#{Bean.answer=='two'}" id="two" value="#{messages.two}"/></p>

它得到答案并呈现组件,但为了在我的页面上看到它,我需要刷新页面。我如何解决这个问题?有什么建议吗?

共有3个答案

淳于枫
2023-03-14
style="visibility: #{questionchoose.show==false ? 'hidden' : 'visible'}"
齐磊
2023-03-14

我知道这不是问题的中心,但由于我过去多次遇到这个问题,我只是把它贴在这里,以帮助其他需要帮助的人。对于那些使用PrimeFaces的人来说,PrimeFaces扩展中有一个叫做Switch的组件。

有时,您需要根据值显示不同的输出或组件。通常,您可以通过使用ui: frame标签来实现这一点。使用pe: switchutil标签,您将不必声明ui: frame标签,并使用不同的检查,例如ui: fra审视="#{!空的一些ontroller.value}"

闻人升
2023-03-14

JSF组件的渲染属性是一个服务器端设置,用于控制JSF是否应生成所需的HTML。

<代码>

然而,由于您指定的是一个HTML元素的客户端ID,而JSF从未呈现该元素(由于呈现的是false),JavaScript在HTML DOM树中找不到它。

您需要将其包装在容器组件中,该组件始终呈现,因此在HTML DOM树中始终可用。

<h:commandButton action="#{Bean.method()}"  value="Submit">
   <f:ajax execute="something" render="messages" />
</h:commandButton>

<p>
    <h:panelGroup id="messages">
        <h:outputFormat rendered="#{Bean.answer=='one'}" value="#{messages.one}"/>
        <h:outputFormat rendered="#{Bean.answer=='two'}" value="#{messages.two}"/>
    </h:panelGroup>
</p>

与具体问题无关,您可能存在设计错误。为什么不创建一个#{Bean.message}属性,用动作方法中所需的消息设置该属性,以便只使用:

<h:commandButton action="#{Bean.method()}"  value="Submit">
   <f:ajax execute="something" render="message" />
</h:commandButton>

<p>
    <h:outputFormat id="message" value="#{Bean.message}" />
</p>
 类似资料:
  • Mpx中的条件渲染与原生小程序中完全一致,详情可以查看这里 简单示例如下: <template> <view class="container"> <!-- 通过 wx:if 的语法来控制需要渲染的元素 --> <view wx:if="{{ score > 90 }}"> A </view> <view wx:elif="{{ score > 60 }}"> B </

  • 问题内容: 我在渲染中添加了一个条件,突然它停止显示。这是我正在使用的代码。 我只想显示sdata中的4个项目。有人请帮忙。 问题答案: 您忘记了body中的元素,以及 i > = 5*之后的所有条目所需的元素。 * 这样写: 但我建议您使用而不是仅创建5个元素。 如果要使用,则首先使用 slice 并创建5个元素的子元素,然后在其上使用。 像这样:

  • 主要内容:React 实例,元素变量,React 实例,与运算符 &&,React 实例,三目运算符,阻止组件渲染,React 实例在 React 中,你可以创建不同的组件来封装各种你需要的行为。然后还可以根据应用的状态变化只渲染其中的一部分。 React 中的条件渲染和 JavaScript 中的一致,使用 JavaScript 操作符 if 或条件运算符来创建表示当前状态的元素,然后让 React 根据它们来更新 UI。 先来看两个组件: 我们将创建一个 Greeting 组件,它会根据用户

  • v-if 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1> {{/if}} 在 Vue.js ,我们使用 v-if 指令实现同样的功能: <h1 v-if="ok">Yes</h1> 也可以用 v-else 添加一个 "else" 块: <h1 v-if="ok">Yes</

  • 问题内容: 如何在样式组件中使用条件渲染以使用React中的样式组件将按钮类设置为活动状态? 在css中,我会这样做: 在样式化的组件中,如果我尝试在类名中使用“ &&”,则不喜欢它。 问题答案: 你可以简单地做到这一点 在您的样式中,如下所示:

  • 我正在尝试获得一个h:textInput以在更改时重播,我已经用a4j:ajax和f:ajax进行了尝试。 使用a4j:ajax时: 这在面板第一次更新后第一次起作用,它停止更新modell,并且监听器也没有被调用。但是,会触发渲染,从而显示旧值。 现在,当我用f:ajax替换a4j:ajax时,我得到一条错误消息,即在xyzInput中找不到id xyzPG。 当我尝试将重新渲染限制为input