• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Set/get scope var через csjs

victorhalf

Green Team
29.05.2007
79
3
BIT
0
Привет, Помогите понять что не так.
Что нужно: спросить пользователя и записать его ответ в поле документа
Что делал:
1)поле прикрученное к скоп переменной
Код:
<xp:inputText id="rejectInput" value="#{sessionScope.rejectReason}">  </xp:inputText>
2)кнопка с кодом
csjs =
JavaScript:
var ans = XSP.prompt("Причина?");
if(ans==null || ans=="" )
   {alert("Нужна причина "); return false
}else{
   XSP.getElementById("#{id:rejectInput}").value = ans;
  return true;  };
ssjs =
(для примера) document1.setValue("history",sessionScope.rejectReason);

В чем хрень: в итоге в ssjs скоп переменную не получаю (смотрю в дебагере - её вообще нет)
Причем этот код работал пока всё было на одной странице, а когда разбросал по кастом контролам обнаружил такую ж.
Помогите плиз, может чего не так делаю?
 
R

romych2004

А Вы данные-то на сервер отправляете? (партиал рефреш)
Скиньте полный код кнопки, пожалуйста
 

victorhalf

Green Team
29.05.2007
79
3
BIT
0
А Вы данные-то на сервер отправляете? (партиал рефреш)
Изначально - нет. Но код-то работал(пока был на одной странице).
Как я понимаю рефреш запускать нужно из клиентского кода? Тогда это ситуацию не изменило.
JavaScript:
 var ans = XSP.prompt("Причина?");
if(ans==null || ans=="" )
   {alert("Нужна причина "); return false
}else{
   XSP.getElementById("#{id:rejectInput}").value = ans;
   XSP.partialRefreshGet("#{id:rejectInput}");
  return true;  };
Полный код кнопки местный движок блочит(. но важно ведь что в csjs.
ПС.Собственно я обошёлся Rpc, но осадочек то остался
 
R

romych2004

Как я понимаю рефреш запускать нужно из клиентского кода? Тогда это ситуацию не изменило.
Либо в кнопке настраиваете partial refresh и partial execute, либо в csjs, да..
Если не ошибаюсь, XSP.partialRefreshGet("#{id:rejectInput}"); - только получит данные с сервера, Вам же их надо отправить, используйте partialRefreshPost или передавайте в Get параметр со значением

По поводу работы кода на одной странице - не думаю что как-то зависит, во всяком случае я не встречался. Разве что может другой элемент есть с таким же айдишником

p.s. код можно в текстовый файл кинуть и приложить
 
Мы в соцсетях:

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