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

在列表上使用不会更新模型值

耿志义
2023-03-14

以下是场景(简化):

有一个bean(称为mrBean),其中包含一个成员和适当的getters/setters:

private List<String> rootContext;

public void addContextItem() {
    rootContext.add("");
}

JSF代码:

<h:form id="a_form">
            <ui:repeat value="#{mrBean.stringList}" var="stringItem">
                    <h:inputText value="#{stringItem}" />
            </ui:repeat>
            <h:commandButton value="Add" action="#{mrBean.addContextItem}">
                <f:ajax render="@form" execute="@form"></f:ajax>
            </h:commandButton>
</h:form>

问题是,当单击“添加”按钮时,

实际上,mrBean。字符串列表setter(setStringList(列表

知道为什么吗?

一些信息-我正在Tomcat6上使用MyFacesJSF2.0。


共有1个答案

阎嘉荣
2023-03-14

String类是不可变的,并且没有值的setter。getter基本上是对象#toString()方法

您需要直接获取/设置List上的值。您可以通过提供的列表索引来完成此操作。

<ui:repeat value="#{mrBean.stringList}" varStatus="loop">
    <h:inputText value="#{mrBean.stringList[loop.index]}" />
</ui:repeat>

stringList也不需要setter。EL将通过List#get(index)获取项目,并通过List#add(index,item)设置项目。

 类似资料:
  • 问题内容: 我已经阅读了有关此问题的主题,例如:[\AngularJS中未更新视图,\但我仍然不明白如何在我的简单示例中应用它。 我有这个功能: 当代码中的其他地方更新时(用户单击,交互,发送XHR请求时),它不会更新我的视图。我知道我需要使用$apply做些事情,但我不知道在哪里以及如何做。 有人可以向我解释如何针对这个简单用例解决此问题吗? 我的模型看起来像这样(如果这个问题是必要的)-它里面

  • 问题内容: 我目前正在使用基于Web的Twitter客户端,因此我使用了angular.js,node.js和socket.io。我通过socket.io将新的推文推到我的客户端,服务在其中等待新的推文。当一条新的推文到来时,该服务通过$ broadcast发送事件。 在我的控制器中是一个事件侦听器,其中传入的tweet在单独的函数中进行处理。此功能只是将新的推文推入我的推文范围。 现在,我的问题

  • 问题内容: 可能是愚蠢的问题,但是我的html表单带有简单的输入和按钮: 然后在控制器中(从routeProvider调用模板和控制器): 为什么单击按钮后,视图在控制台中正确更新但未定义? 谢谢! 更新:似乎我实际上已经解决了该问题(在不得不提出一些解决方法之前),方法是:只需将我的属性名称从更改为,然后在控制器中定义空对象,瞧……不知道它为什么起作用虽然;] 问题答案: 控制器作为 版本(推荐

  • 问题内容: 我有两个控制器,并使用app.factory函数在它们之间共享数据。 单击链接时,第一个控制器在模型数组(pluginsDisplayed)中添加一个小部件。将小部件推入数组,并将此更改反映到视图中(使用ng- repeat显示数组内容): 该小部件基于三个指令k2plugin,remove和resize建立。remove指令将范围添加到k2plugin指令的模板。单击该范围时,将使用

  • 我目前正在重构遗留代码,以使用Android架构组件,并在一种存储库模式中设置一个房间数据库和截取请求。因此,表示层/域层要求存储库获取LiveData对象进行观察,或告诉他与服务器同步,然后删除旧的db条目,并从服务器中重新提取所有当前条目。 我已经写了同步部分的测试,所以我确信,对象被正确地获取并插入到数据库中。但是当写一个测试来观察db表的条目时(并测试对象是否被正确保存,以及在将它们放入d

  • 问题内容: 我用来加载图像。值是从一些范围变量加载的,如下所示: 我的问题是,当我运行时,它会使属性为空,但不会在属性中反映出来。因此,我不断看到需要空占位符的图像。 我该如何处理? 问题答案: 这是ngSrc和ngHref指令的预期行为。这些指令仅支持识别新路径,但是当路径不可用时,这些指令将以静默方式退出(我在这里看到一个拉取请求。)。 因此,当图像变量不再可用时,可能的解决方法是将ngSho