Почему h:selectBooleanCheckbox не обновляется?

Я разрабатываю веб-приложение Java с помощью JSF 2.2, и у меня есть список Boolean, но этот список не меняется в зависимости от решений клиента; когда пользователь нажимает h:commandButton, в списке отображается один и тот же результат:

false
false
true

Мой xhtml-код:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form>
            <ui:repeat value="#{test.list}" var="item" varStatus="status">
                <h:selectBooleanCheckbox value="#{item}"/>
                Hello #{status.index}
                <br/>
            </ui:repeat>
            <h:commandButton value="write" action="#{test.write}">
                <f:ajax render="@form" execute="@form"/>
            </h:commandButton>
        </h:form>
    </h:body>
</html>

И мой Бин:

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;


@ManagedBean
@SessionScoped
public class Test implements Serializable {

    private List<Boolean> list;

    public Test() {
        list = new ArrayList();
        list.add(false);
        list.add(false);
        list.add(true);
    }

    public void write(){
        int t = list.size();
        for(int i = 0; i < t; i++)
            System.out.println(list.get(i));
    }

    public List<Boolean> getList() {
        return list;
    }

    public void setList(List<Boolean> list) {
        this.list = list;
    }

}

Если пользователь проверил, например, первый вариант, когда пользователь нажимает кнопку, вывод должен быть:

true
false
true

В чем проблема? большое спасибо!


person Juan Camacho    schedule 01.02.2017    source источник