2013-06-26 1 views
0

Я новичок в Salesforce и задаюсь вопросом на страницах VisualForce (VF) и Apex Controllers.Salesforce Отправьте данные с страницы visualforce на контроллер apex с помощью JQuery

Если у меня есть страница VF с контроллером, включенным в нее, то при загрузке страницы в SFDC будет создан новый экземпляр контроллера. Это верно?

если правильно, то контроллер будет иметь некоторое состояние, имеющее некоторые переменные, которые содержат некоторые данные. Если я хочу получить доступ к странице VF, в которой также был тот же самый контроллер, включенный в тег, будет ли эта страница VF получать доступ к одной и той же информации того же экземпляра контроллера или создаст новый экземпляр этого контроллера?

Я пришел к выводу, что использование может быть использовано для создания ajax-вызовов для контроллера, который отправляет состояние просмотра клиенту и обновляет представление, когда ответ приходит в браузер. Но Salesforce (SFDC) отправляет много мусора, когда я использую. Я не хочу весь этот мусор. Мне просто нужно отправить небольшую строку JSON с контроллера.

Я пытаюсь использовать вызов JQuery AJAX на какую-то страницу VF, в которую также входит один и тот же контроллер. Мое сомнение заключается в том, использует ли он тот же экземпляр этого контроллера или будет создавать новый экземпляр?

ответ

0

вы можете использовать RemoteAction

global with sharing class myController{ 
    @RemoteAction 
    global static string foo(String str) { 
     return 'OK'; 
    } 
} 

На странице

<script> 
myController.foo('str',callBack) 

function callBack(res){ 
    alert(res); 
} 
</script> 
+0

Ya, что хорошо. Но у меня есть некоторые переменные экземпляра в контроллере, которые хранят данные в зависимости от прав пользователя и правил совместного доступа. Смогут ли эти статические методы использовать этот тип переменных экземпляра? будут ли соблюдаться правила обмена? – speruri

+0

Нет, но вы можете отправить их для работы. глобальная статическая строка foo (String str, String str, String str) и на странице myController.foo ('str', '{! variable1}', ..., callBack) –

+0

Мое требование состоит в том, чтобы получить только строку JSON без каких-либо viewstate, и необходимо поддерживать значения переменных экземпляра двумя страницами VF, которые используют один и тот же контроллер. – speruri