commandButton на visualforce не видит коллекцию

Вечер добрый. Есть visualforce страница для объекта Account, и extension controller для это страницы.
При открытии страницы загружаю на неё таблицу с записями(wrapper над кастомным объектом). Отмечаю с помощь checkbox те что хочу удалить и нажимаю на commandButton которая вызывает метод из контроллера, для удаления записи. Что странно, в методе моя коллекция записей ВСЕГДА пустая ! Будто по нажатию страница обновляется но данные снова не подтягиваются. В итоге ловлю null pointer…
Help, есть мысли? Почему по нажатию на кнопку, все переменные класса подчищаются?

Вот пример такого контроллера и страницы, проблема та же самая.

EmployeeController
public class EmployeeController {
    
    public static List<Employee__c> employees {get;set;}
    public static List<EmployeeWrapper> employeesWrappers {get;set;}
    
	public EmployeeController () {
        employees = [SELECT id, Name FROM Employee__c];
        employeesWrappers = new List<EmployeeWrapper>();
        initEmployeeWrappers(employees);
    }
    
    private static void initEmployeeWrappers(List<Employee__c> employees) {
        for(Employee__c emp : employees) {
            employeesWrappers.add(new EmployeeWrapper(emp));
        }
    }
    
    public static void remove() {
        List<Employee__c> employeesForDelete = new List<Employee__c>();
        
        for(EmployeeWrapper wrap : employeesWrappers) {
            if(wrap.isSelected){
                employeesForDelete.add(wrap.employee);
            }
        }
        
        delete employeesForDelete;
    }    
    
    private class EmployeeWrapper {
        public Employee__c employee{get;set;}
        public Boolean isSelected{get;set;}
        
        public EmployeeWrapper(Employee__c emp){
            employee = emp;
            isSelected = false;
        }
    }
}
VisualForce
<apex:page controller="EmployeeController">
    <apex:form >
      
        <apex:pageBlock title="Inline Visualforce Page Example">
            
            <apex:pageBlockButtons >
                <apex:commandButton value="Remove" action="{!remove}" reRender="emp" />
            </apex:pageBlockButtons>
            
            <apex:pageBlockSection>
                <apex:pageBlockTable value="{!employeesWrappers}" var="emp" id="emp">
                    
                     <apex:column >
                         <apex:inputCheckbox value="{!emp.isSelected}"/>
                     </apex:column>
                     <apex:column title="Name">
                         <apex:outputText value="{!emp.employee.Name}"/>
                    </apex:column>
                    
                </apex:pageBlockTable>
            </apex:pageBlockSection>
            
        </apex:pageBlock>
     
    </apex:form>
</apex:page>

люди, як можна питати питання щодо косякік в коді не скидуючи сюди код… Це не передача ‘битва екстрасенсів’.

@alevvallav Вам на будущее, если хотетие получить полноценную и развернутую помощь по коду, тогда нужно выкладывать сам код с подробным описание (входящие данные, действия, случаи …).
Так Вы только полчите в ответ догадки и предположения.

1 Вподобання

Спасибо, понял) Обновил описание @LambuR @Bogdan

приберіть статік, vf працює з інстансом класу! статичні змінні, проперті і т.д. не належать до інстансу.

They aren’t transmitted as part of the view state for a Visualforce page.

2 Вподобання

Дякую, допомогло)