JSF 2.0 の単純なアプリケーションに問題があります。
ajax をサポートする ToDo リストを作成しようとしています。データテーブルを使用して表示する todo 文字列がいくつかあります。このデータテーブル内には、タスクを削除するための 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 */
}