我在使用 JSF 2.0 中的简单应用程序时遇到了一些问题。
我尝试构建一个支持 ajax 的待办事项列表。我有一些使用数据表显示的待办事项字符串。在这个数据表中,我有一个 commandLink 来删除任务。现在的问题是数据表不会重新呈现。
<h:dataTable id="todoList" value="#{todoController.todos}" var="todo">
<h:column>
<h:commandLink value="X" action="#{todoController.removeTodo(todo)}">
<f:ajax execute="@this" render="todoList" />
</h:commandLink>
</h:column>
<h:column>
<h:outputText value="#{todo}"/>
</h:column>
</h:dataTable>
感谢您的帮助。
编辑(TodoController):
@ManagedBean
@SessionScoped
public class TodoController {
private String todoStr;
private ArrayList<String> todos;
public TodoController() {
todoStr="";
todos = new ArrayList<String>();
}
public void addTodo() {
todos.add(todoStr);
}
public void removeTodo(String deleteTodo) {
todos.remove(deleteTodo);
}
/* getter / setter */
}
最佳答案
(看来我没有足够的声誉来评论别人的答案)
我认为 FRothowe 建议用另一个元素包装表格,并使用来自
像这样:
<h:form id="form">
<h:panelGroup id ="wrapper">
<h:dataTable value="#{backingBean.data}" var="list">
<h:column>
<h:commandButton value="-" action="#{backingBean.data}">
<f:ajax render=":form:wrapper"/>
</h:commandButton>
</h:column>
</h:dataTable>
</h:panelGroup>
</h:form>
但是,使用绝对引用始终是问题的根源,并且随着 View 的增长,重构时间呈指数级增长。
有没有办法只从
关于java - Ajax 渲染属性在 h :dataTable in JSF2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2424757/