• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Как Передать Свой Параметр Для Обработки В Ssjs

  • Автор темы lionk
  • Дата начала
L

lionk

Никак не могу понять до конца что именно сабмитится для обработки в ssjs.
Может кто то на пальцах объяснить?
Когда я агента вызываю или форму сабимтю я точно понимаю и контролирую что передаётся на сервер для обработки.
А что передаётся когда к примеру я нажимаю на ссылку у которой определён onCilck SSJS?
И как контролировать это?



И практический вопрос, к примеру:
у меня на странице есть JavaScript переменная var rekv="333", как мне передать её в ssjs обработчик и потом сделать частичное обновление страницы?

Раньше я бы сделал асинхронный вызов агента, передал параметр, принял ответ и жаваскриптом отобразил результат. Как мне сделать подобное на идиологии xpage?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Общение между CSJS и SSJS произвожу по средствам полей, скрытых полей, параметров или имен к элементам.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
прошу прощения... атрибуты

element.setAttribute()
element.attributeName = 'value'
 
L

lionk

всёравно не догдал. чего атрибуты, можно пример?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ну я, честно говоря не понимаю постановки задачи.
Зачем разносить код между клиентом и сервером? Таких случаев реально мало. Ну по крайней мере я с таким почти не встречался.
Давай конкретный пример.

Агент через SSJS запускается легко. На SSJS есть все необходимые классы почти все как LS + еще и добавлены @-формулы.
 
L

lionk

>Зачем разносить код между клиентом и сервером?
Ну например у тебя есть большой яваскрипт объект(класс) с которым постоянно работает пользователь, он инициализируется при загрузке страницы, и НЕ предпологает необходимость отправки данных ВО ВРЕМЯ работы с ним пользователем. когда пользователь закончил и всё сделал, нужно сохранить несколько занчений всего объекта, вот их и передать на сервер. хочу отметить что это разделение "естественное", и между собой по логике не связанное.

пререфразирую вопрос:
как передать данные в ssjs НЕ используя поля(именованные объекты XPAGE) ?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
как бы ты передавал данные в классической реализации?
Я тебе предложил вариант.. заполнять нужные поля или атрибуты полей, элементов, а дальше обрабатываешь на сервере.
Ты же все равно как-то передавать данные надо.
Ну и зачем все делать на клиенте? Может лучше нагружать сервер?
 
L

lionk

>Ну и зачем все делать на клиенте? Может лучше нагружать сервер?
Ну зачем пить молоко когда есть пиво? :D

Добавлено: Хотя, а как изменять яваскриптом атрибуты элементов, и потом в ssjs их считывать?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
CSJS
JavaScript:
document.getElementById("#{id:in1}").setAttribute("name", "submit_content");
SSJS
JavaScript:
getComponent("in1").getAttributes()
 
J

JohnLemon

CSJS
JavaScript:
document.getElementById("#{id:in1}").setAttribute("name", "submit_content");
SSJS
JavaScript:
getComponent("in1").getAttributes()
У меня не получается что то, на одну кнопку делаю на клиенте
Код:
document.getElementById("#{id:inputText1}").setAttribute("name", "dsads");
на вторую на сервере
Код:
sessionScope.sesScope = getComponent("inputText1").getAttributes();
в inputText такая бяка javax.faces.component.UIComponentBase$AttributesMap@0, что это )) ?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
.getAttributes();
ты не думал взять конкретный атрибут? а не все сразу?
 
J

JohnLemon

.getAttributes();
ты не думал взять конкретный атрибут? а не все сразу?
Да конечно пробовал, если .getAttributes(name) ошибка Script interpreter error, line=1, col=66: [ReferenceError] 'name' not found если .getAttributes("name") Script interpreter error, line=1, col=52: Java method 'getAttributes(string)' on java class 'com.ibm.xsp.component.xp.XspInputText' not found
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
учись пользоваться хелпом и искать в интернете.
Код:
var component=getComponent(”nameOfCheckBoxGroup”).getAttributes().get(”value”);
 
J

JohnLemon

учись пользоваться хелпом и искать в интернете.
Код:
var component=getComponent(”nameOfCheckBoxGroup”).getAttributes().get(”value”);
Блин, спасибо, но сделал так
Код:
sessionScope.sesScope = getComponent("inputText1").getAttributes().get("name");
в итоге в inputText1 ничего не появляется, хотя в Data указал SessionScope - sesScope((
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ты явно чего-то недопонимаешь.
Что за документ? Что за поле?
Документ открыт на странице? Или это совершенно новый документ?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Документ открыт на странице? Набросай простую страницу и выложи код
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!