<h: form> внутри <ui: repeat> не полностью работает, обрабатывается только последняя <h: form>

Я хотел бы редактировать список элементов на той же странице. Каждый элемент должен редактироваться с использованием отдельной формы. Я создаю форму h: внутри интерфейса ui: repeat. Только после отправки последней формы пользовательский ввод применяется к управляемому компоненту. Для всех других форм пользовательский ввод не применяется к модели.

@ManagedBean
public class Controller {
    Logger logger = Logger.getLogger("TestWeb");
    private List customerList;

    public List getCustomerList() {
        if (customerList == null) {
            customerList = new ArrayList();
            customerList.add(new Customer("Daffy Duck", "[email protected]"));                          
            customerList.add(new Customer("Bugs Bunny", "[email protected]"));       
            customerList.add(new Customer("Samity Sam", "[email protected]"));
        }
        return customerList;
    }
    public String updateCustomer(Customer c) {
        logger.info("Updating: " + c.getName());
        return null;
    }
}

По мнению, у меня есть



  Edit Customer
  Name: <br>
  E-mail: <br>
  


Я часами ищу без какого-либо решения. Каков будет правильный способ сделать это? Я могу взломать его, используя одну форму и используя пользовательский интерфейс: повторить в нем. Но есть много проблем с этим, и я скорее не буду идти по этому пути. Благодарю.

 kolossus10 окт. 2012 г., 04:31
Ой? Оглядываясь назад, эти цифры, как и во время визуализации разметки, являются аргументомповторно поставлять вupdateCustomer метод будетбыло установлено последнее значение. Вы должны просто предоставить выбранное значение компоненту, используя вместо этого, возможно, передавая только идентификатор объекта. Я'Я использовал это раньше, поэтому яЯ уверен, что это работает. Имейте в виду, однако, это создает угрозу безопасности, передавая Id туда и обратно, как это. Вы можете захотеть защитить параметр как-то
 kolossus10 окт. 2012 г., 04:13
Вы можете достичь этого, оборачивая только с.
 RajV10 окт. 2012 г., 04:22
@kolossus, ты уверен? Я попытался обернуть командную кнопку в форму. Это нене решить проблему.

Ответы на вопрос(1)

Решение Вопроса

 в Мохарре. Есть несколько похожих сообщений о проблемах наhttp://java.net/jira/browse/JAVASERVERFACESсреди другихвыпуск 2243.

У вас есть в основном 2 варианта: использовать другой итерационный компонент (например,,,и т. д.), или замените Мохарру на MyFaces ( в этой конструкции работает должным образом там).

 RajV10 окт. 2012 г., 20:34
Я переработал свое решение, используя <с: Foreach> и все теперь работает. Спасибо!

Ваш ответ на вопрос