以下是场景(简化):
有一个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。
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