簡體   English   中英

JSF PrimeFaces渲染組件

[英]JSF PrimeFaces rendering components

假設我有一個簡單的方法,如下所示:

public String test()
{
    return "hello";
}

現在,我們有以下PrimeFace組件:

        <p:fieldset styleClass="containers" rendered="#{controller.test()}">

            <h2>Testing</h2>

            <p:outputLabel for="test" value="Test" />
            <p:inputText id="test" />

        </p:fieldset>

上面的方法返回“ hello”。 我想通過比較該方法的返回值與我的一個bean的字段來動態顯示和隱藏該fieldSet。 例如,在呈現的參數上,我想做類似的事情:controller.test()!=“ some variable”,它將返回true或false。 我可以這樣做嗎? 如果沒有,該怎么做?

基本上,目標是通過將方法的返回值與bean屬性進行比較來動態顯示和隱藏某些容器。

看起來像您誤解了rendered

呈現的屬性

組件標簽使用布爾EL表達式以及渲染的屬性來確定是否將渲染組件。

如果您檢查上面的定義,您將知道此屬性的確切用途。

您可以在下面看到更多

使用布爾EL表達式的rendered屬性指示組件當前是否可見。 當您要為特定用戶或根據條件隱藏組件時,此屬性很有用。 rendered屬性的默認值為true。

<h:outputText value=”mapping” rendered=”Boolean EL expression” />

例如,如果購物車中不包含任何物品,則不會呈現頁面以下部分中的commandLink組件:

<h:commandLink id="check"
    ...
    rendered="#{cart.numberOfItems > 0}">
    <h:outputText
        value="#{bundle.CartCheck}"/>
</h:commandLink>

對於您的具體問題,您可以這樣做

  • 產生一個String變量調用value
  • 現在為上述變量創建get / set方法

現在,在您的測試方法中,您可以添加

public void test(){
       value="hello";
      }

Bur記得您有調用load的test()方法來加載頁面

現在在您的Xhtml或Jsf或Jsp頁面中

rendered="#{controller.value != 'hello'}"

或者更好的方法是創建一個Boolean變量,然后進行隱藏和顯示組件的所有操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM