Вывод данных в таблицу VisualforcePage через apex:repeat / решено

Вывод данных в таблицу VisualforcePage через apex:repeat / решено

Подскажите пожаулйста, такой вопрос, никак не получается решить)

Дано: vfp страница + контроллер. Нужно на страницу вывести таблицу с данными,

для этого в контроллере создаю класс с тремя String полями, заполняю его, и использую на странице <apex:repeat> (Передаю в таблицу заполненный объект, как приведено в доках (https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_repeat.htm#!)

на выходе - тишина(

хотя дебаг показывает что объект не пустой

Как быть?

(код страницы и контроллера)

<apex:page  controller="TestPController">

<table>
<tr><td>CabinNumber</td><td>CabinType</td><td>PassengerName</td></tr>
<apex:repeat var="variable" value="{!passengers}">
<tr>
<td>{!variable.cabinNumber}</td>
<td>{!variable.cabinType}</td>
<td>{!variable.passengerName}</td>
</tr>
</apex:repeat>
</table>
</apex:page>

public class TestPController {

public List<Passenger> passengers {get;set;}
public class Passenger {
public String passengerName {get;set;}
public String cabinNumber {get;set;}
public String cabinType {get;set;}
}

public TestPController() {
List<Passenger> passengers = new List<Passenger>();

Passenger pass = new Passenger();

for (Integer i = 0; i < 3; i++) {
pass.passengerName = 'Name' + i;
pass.cabinNumber = 'cabinNumber' + i;
pass.cabinType = 'cabinType' + i;
passengers.add(pass);
}
System.debug(passengers);
}
}

Для начала перемести строку
Passenger pass = new Passenger();
внутрь for цикл.
А то получается что ты добавляешь в массив один и тот же объект в котором меняешь поля. Даже не представляю что в итоге у тебя получается в массиве passengers.

Проверь что получится. Если не заработает, будем думать дальше.

Большое спасибо быстро помогли объяснили всё работает
в контроллере изменить

List<Passenger> passengers = new List<Passenger>();

на

passengers = new List<Passenger>();

(ошибка не объявлять новую пер, а работать со свойством объекта, чтобы его было видно из vfp),

и Passenger pass = new Passenger(); поместить внутрь цикла чтобы корректно заполнить объект

List<Passenger> passengers = new List<Passenger>();
А блин, точняк. Чет я это упустил из виду
Отлично что заработало!

Interesting information? Help us, post link to social media..