всем привет
набор ВФ страниц рендерит выборочный список записей какого-то объекта.
я хочу использовать для всех них один контроллер.
но ему нужно объяснить какие именно записи кверить.
для этого нужно писать параметр в УРЛ. но не хочу так, просто глупо будет:
/apex/toytota?what=toyota
но как контроллеру передать инфу без параметра? взять просто подстроку из УРЛ?
я подумал может сделать набор init() методов, какждый из которых вызывает квери метод с нужным условием, и этот нужный init() метод поставить на action атрибут на страницу?
(можно вообще сделать одну ВФ страницу, и в нее все-таки передавать УРЛ параметр, но пока так вопрос не стоит)
спасибо
эх жаль в action="{!init} нельзя вложить параметр, только разные init-ы...
HTTP Header?
c HTTP хидером сложновато для меня будет...
спасибо
public with sharing class multifunc { public multifunc() {
PageReference Cp = System.currentPageReference();
String URL = cp.getUrl();
//в зависимости от URL делай что тебе нужно
}
}
В-общем, выцарапывать инфу из УРЛа.
но я с разными инит экшин сделал. вроде аккуратно выглядит.
Передавать значения в GET это нормальная практика - весь мир этим пользуется. Так что не вижу в это ничего страшного. Тем более в этом есть огромный плюс - такой URL (с GET-параметром) можно скопировать и передать простым текстом (например в email) и человек по этому URL попадет именно на "нужную" страницу. В Salesforce нет наверное больше "нормальных" возможностей это сделать - POST используется для передачи view state, про другие типы запросов ничего не скажу.
Как вариант - запихивать параметр в cookie на странице и делать reload. В конструкторе выбирать нужную куку и если там будет валидный параметр выводить данные, иначе по дефолту.
спасибо за ответы.
ночью спал и думал, про "HTTP Header, HTML Header,SOAP Header" и потом осознал, что в TCP/IP тоже есть свой Header, а в оборачивающих его протоколах - свои хидеры... Просто матрешка...
ну ладно, раз заговорили о принципах передачи данных по сети, у меня к вам один тонкий вопрос, который я не могу с уверенностью понять.
В чем отличие между REST web-service и REST API?
Как я понимаю, принцип работы и структура сообщений - одинакова. Отличие может лежать только в принципиально разной организации доступа к данному функционал. У REST web-service - клиентом может быть любой (или не любой - как организовано), а вот у REST API всегда нужна авторизация - и именно это требует дополнительных настроек как в Орге, так и на клиенте. Получается, что пользование Оргом по REST API - это тоже самое, что обычное пользование юзером Орга, просто юзер шлет не стандартные HTTP запросы - а "рестофицирование", а сервер в ответ шлет не HTML разметку, а REST сообщение, которые по содержанию просто JSON строки (может обернутые в XML, а может и нет - вот это тоже еще не разобрал).
правильно думаю?
спасибо
В чем отличие между REST web-service и REST API?
ночью спал и думал, про "HTTP Header, HTML Header,SOAP Header" и потом осознал, что в TCP/IP тоже есть свой Header, а в оборачивающих его протоколах - свои хидеры... Просто матрешка...
Если нужны хедеры и другие типы запросов это уже не контроллер, а веб-сервис.
Какие TCP/IP, какие Header в Salesforce?
это я уже переключился на другую тему про структуру сообщений, передаваемых по интернету...
Значит ты на очень низкий уровень переключился :). Там тема намного больше и сложнее всего Salesforce :). Всё, что знают и используют 99% программистов, это протокол http. Все SOAP, REST строятся на основе http протокола. Просто мы привыкли ассоциировать интернет с http потому что браузеры работают на его основе. Но на самом деле все намного сложнее в этом мире
http://en.wikipedia.org/wiki/Application_layer найде среди протоколов http :)
до TCP Header в Salesforce добраться не получится, и, я бы сказал, что на других платформах это будет не проще. Как правильно заметил Дмитрий, это уж больно низкий уровень.
Я помню в своей молодости, когда еще ничего не знал про Интернет, http и сети, купил себе вот такой вот "кирпич"
Протоколы TCP/IP. Практическое руководство.
на хренову тучу страниц. Было конечно классно осознавать себя владельцем столько фундаментального источника знаний, только вот кроме как чтения первых глав и ощущением полного вакуума в голове я дальше не ушел ![]()
В общем использовать TCP/IP в сетевом программировании - это тоже самое что программировать на Assembler в современном мире
Круто, но нафиг не нужно.
В общем использовать TCP/IP в сетевом программировании - это тоже самое что программировать на Assembler в современном миреКруто, но нафиг не нужно.
Unless вы пишете что-то такое, что должно передавать данные по сети сильно быстро.
я подумал может сделать набор init() методов, какждый из которых вызывает квери метод с нужным условием, и этот нужный init() метод поставить на action атрибут на страницу?
А я вообще жесточайше против подхода когда один контроллер с 100500 инитами юзается на 100500 страницах.
А я вообще жесточайше против подхода когда один контроллер с 100500 инитами юзается на 100500 страницах.