Вернулся к написанию контроллеров и попробовал разобраться с простой, но не вполне ясной для меня темой того, какие как переменные из контроллера можно передать во Вью для вывод-ввода значений в них.
Вижу в примерах использование Get метода:
Account account;
public Account getAccount() {
if(account == null) account = new Account();
return account;
}
<apex:outputField value="{!account.name}"/>
другой вариант:
Public Object myObject { set; get; }и в конструкторе контроллера инициализируем это поле.
выводится-вводится также
<apex:inputField value="{!myObject.name}"/>
так вот когда в первом примере я убираю из кода get метод и заменю его публичным set-get Property account (плюс инициализирую это поле в конструкторе) - измененный контроллер не сохраняется, пишет что во вью требуется этот Account getAccount() is referenced by Visualforce Page.
и я не знаю почему. Ну какая разница в данном случае для VFP что выводить в apex:outputField - переменную полученную из гет -метода или из гет-сет свойства? ведь публичное сет-гет поле тоже прекрасно выводится в VFP?
как говорится, "черт сидит в мелочах". И я не знаю где именно.
Вернулся к написанию контроллеров и попробовал разобраться с простой, но не вполне ясной для меня темой того, какие как переменные из контроллера можно передать во Вью для вывод-ввода значений в них. Вижу в примерах использование Get метода: [code] Account account; public Account getAccount() { if(account == null) account = new Account(); return account; } <apex:outputField value="{!account.name}"/>[/code] другой вариант: [code]Public Object myObject { set; get; } и в конструкторе контроллера инициализируем это поле. выводится-вводится также <apex:inputField value="{!myObject.name}"/>[/code] так вот когда в первом примере я убираю из кода get метод и заменю его публичным set-get Property account (плюс инициализирую это поле в конструкторе) - измененный контроллер не сохраняется, пишет что во вью требуется этот Account getAccount() is referenced by Visualforce Page. и я не знаю почему. Ну какая разница в данном случае для VFP что выводить в apex:outputField - переменную полученную из гет -метода или из гет-сет свойства? ведь публичное сет-гет поле тоже прекрасно выводится в VFP? как говорится, "черт сидит в мелочах". И я не знаю где именно.
[quote="Den Brown"]Вернулся к написанию контроллеров и попробовал разобраться с простой, но не вполне ясной для меня темой того, какие как переменные из контроллера можно передать во Вью для вывод-ввода значений в них. Вижу в примерах использование Get метода: [code] Account account; public Account getAccount() { if(account == null) account = new Account(); return account; } <apex:outputField value="{!account.name}"/>[/code] другой вариант: [code]Public Object myObject { set; get; } и в конструкторе контроллера инициализируем это поле. выводится-вводится также <apex:inputField value="{!myObject.name}"/>[/code] так вот когда в первом примере я убираю из кода get метод и заменю его публичным set-get Property account (плюс инициализирую это поле в конструкторе) - измененный контроллер не сохраняется, пишет что во вью требуется этот Account getAccount() is referenced by Visualforce Page. и я не знаю почему. Ну какая разница в данном случае для VFP что выводить в apex:outputField - переменную полученную из гет -метода или из гет-сет свойства? ведь публичное сет-гет поле тоже прекрасно выводится в VFP? как говорится, "черт сидит в мелочах". И я не знаю где именно.[/quote] Было бы значительно проще если бы показал код который не работает.
По сути геттеры и сеттеры это тоже самое что и проперти, только являются просто "альтернативным" способом представления переменой. Из разряда хочешь пиши так, или пиши так.
То что у тебя что-то не заработало мне кажется это просто закралась ошибка в твоем исследовании. Поддержу Сергея и скажу что давай нерабочий пример.
По сути геттеры и сеттеры это тоже самое что и проперти, только являются просто "альтернативным" способом представления переменой. Из разряда хочешь пиши так, или пиши так. То что у тебя что-то не заработало мне кажется это просто закралась ошибка в твоем исследовании. Поддержу Сергея и скажу что давай нерабочий пример.
Вот пример визарда из APEX Guide. Мы этот пример уже обсуждали.
https://www.salesforce.com/us/developer/docs/pages/Content/pages_quick_start_wizard.htm
вместо этого:
Account account;public Account getAccount() {
if(account == null) account = new Account();
return account;
}
пишу:
Public Account account {set; get;}
public newOpportunityController() {
account = new Account();
}
результат - не сохраняется, просит getAccount()...
Вот пример визарда из APEX Guide. Мы этот пример уже обсуждали. [url]https://www.salesforce.com/us/developer/docs/pages/Content/pages_quick_start_wizard.htm[/url] вместо этого: [code] Account account; public Account getAccount() { if(account == null) account = new Account(); return account; }[/code] пишу: [code] Public Account account {set; get;} public newOpportunityController() { account = new Account(); }[/code] результат - не сохраняется, просит getAccount()...
Коментируешь весь код в странице, сохраняешь страницу, сохраняешь контроллер, меняешь страницу, сохраняешь страницу.
[quote="Den Brown"]Вот пример визарда из APEX Guide. Мы этот пример уже обсуждали. [url]https://www.salesforce.com/us/developer/docs/pages/Content/pages_quick_start_wizard.htm[/url] вместо этого: [code] Account account; public Account getAccount() { if(account == null) account = new Account(); return account; }[/code] пишу: [code] Public Account account {set; get;} public newOpportunityController() { account = new Account(); }[/code] результат - не сохраняется, просит getAccount()...[/quote] Коментируешь весь код в странице, сохраняешь страницу, сохраняешь контроллер, меняешь страницу, сохраняешь страницу.
<!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Дразнится" /><!-- s:P -->
Да, работает.
Получается что на ВФП сохранилась какая-то память о зависимостях, которую нужно "обнулить".
Мне стало гораздо лучше.
Кстати я делаю небольшие ВФП и их контроллере во внутрибраузерном СФ редакторе ВФП. Поворачиваю монитор вертикально - удобно. Не могу себя приучить делать это в Эклипсе.
[quote="wilder"] Коментируешь весь код в странице, сохраняешь страницу, сохраняешь контроллер, меняешь страницу, сохраняешь страницу.[/quote] <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Дразнится" /><!-- s:P --> Да, работает. Получается что на ВФП сохранилась какая-то память о зависимостях, которую нужно "обнулить". Мне стало гораздо лучше. Кстати я делаю небольшие ВФП и их контроллере во внутрибраузерном СФ редакторе ВФП. Поворачиваю монитор вертикально - удобно. Не могу себя приучить делать это в Эклипсе.
на вкус и цвет...как говорится. Если будет совместная работа на этом орге получишь массу гемороя, так что выбор за тобой.
[quote="Den Brown"][quote="wilder"] Коментируешь весь код в странице, сохраняешь страницу, сохраняешь контроллер, меняешь страницу, сохраняешь страницу.[/quote] <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Дразнится" /><!-- s:P --> Да, работает. Получается что на ВФП сохранилась какая-то память о зависимостях, которую нужно "обнулить". Мне стало гораздо лучше. Кстати я делаю небольшие ВФП и их контроллере во внутрибраузерном СФ редакторе ВФП. Поворачиваю монитор вертикально - удобно. Не могу себя приучить делать это в Эклипсе.[/quote] на вкус и цвет...как говорится. Если будет совместная работа на этом орге получишь массу гемороя, так что выбор за тобой.