在读取模式下,为什么组件在绑定到bean时呈现为输入?

时间:2014-10-23 09:10:18

标签: xpages

我在一个绑定到bean的Xpage中有一个字段组件 创建文档时,字段将呈现为输入字段,但在读取文档时,组件也会呈现为输入字段,为什么?

2 个答案:

答案 0 :(得分:4)

如果bean有一个getter和 setter ,那么它会被渲染为输入字段。

使用输入字段的属性readonly来确定它是应该呈现为输入字段还是呈现为只读文本字段。

    <xp:inputText
        id="inputText1"
        readonly="#{myBean.readOnly}"
        value="#{myBean.myField}">
    </xp:inputText>

如果有几个字段绑定到bean,则由具有属性readonly的面板围绕它们。这样您就不需要将此属性设置为每个字段。

答案 1 :(得分:1)

我相信你需要一个isReadOnly(Object key)方法来处理你的bean是否只读取bean。 isreadOnly()方法可以将其逻辑基于例如action参数。这是一个简单的例子:

public boolean isReadOnly(final Object key) {
    String action = ExtLibUtil.readParameter(FacesContext.getCurrentInstance(), "action");
    if ("editdocument".equalsIgnoreCase(action)) {
        return false;
    }
    return true;
}

控件将自动使用它来确定是否需要在readmode或editmode中显示inputText控件。