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

Тема в разделе "Lotus - Xpages", создана пользователем lionk, 16 май 2014.

  1. lionk

    lionk Well-Known Member

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



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

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

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Общение между CSJS и SSJS произвожу по средствам полей, скрытых полей, параметров или имен к элементам.
     
  3. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    можно подробнее? что за параметры и как их использовать?
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    прошу прощения... атрибуты

    element.setAttribute()
    element.attributeName = 'value'
     
  5. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    всёравно не догдал. чего атрибуты, можно пример?
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну я, честно говоря не понимаю постановки задачи.
    Зачем разносить код между клиентом и сервером? Таких случаев реально мало. Ну по крайней мере я с таким почти не встречался.
    Давай конкретный пример.

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

    lionk Well-Known Member

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

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

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    как бы ты передавал данные в классической реализации?
    Я тебе предложил вариант.. заполнять нужные поля или атрибуты полей, элементов, а дальше обрабатываешь на сервере.
    Ты же все равно как-то передавать данные надо.
    Ну и зачем все делать на клиенте? Может лучше нагружать сервер?
     
  9. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    >Ну и зачем все делать на клиенте? Может лучше нагружать сервер?
    Ну зачем пить молоко когда есть пиво? :D

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

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    CSJS
    Код (Javascript):
    document.getElementById("#{id:in1}").setAttribute("name", "submit_content");
    SSJS
    Код (Javascript):
    getComponent("in1").getAttributes()
     
  11. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    У меня не получается что то, на одну кнопку делаю на клиенте
    Код (Text):
    document.getElementById("#{id:inputText1}").setAttribute("name", "dsads");
    на вторую на сервере
    Код (Text):
    sessionScope.sesScope = getComponent("inputText1").getAttributes();
    в inputText такая бяка javax.faces.component.UIComponentBase$AttributesMap@0, что это )) ?
     
  12. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    .getAttributes();
    ты не думал взять конкретный атрибут? а не все сразу?
     
  13. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Да конечно пробовал, если .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
     
  14. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    учись пользоваться хелпом и искать в интернете.
    Код (Text):
    var component=getComponent(”nameOfCheckBoxGroup”).getAttributes().get(”value”);
     
  15. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Блин, спасибо, но сделал так
    Код (Text):
    sessionScope.sesScope = getComponent("inputText1").getAttributes().get("name");
    в итоге в inputText1 ничего не появляется, хотя в Data указал SessionScope - sesScope((
     
  16. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Что ты хочешь сделать?
     
  17. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Ну вообще под клиентом выполняеться скрипт, оттуда взять результат и поместить его в inputText1, и потом записать еще в документ
     
  18. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ты явно чего-то недопонимаешь.
    Что за документ? Что за поле?
    Документ открыт на странице? Или это совершенно новый документ?
     
  19. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Новый документ, поле текст
     
  20. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Документ открыт на странице? Набросай простую страницу и выложи код
     
Загрузка...

Поделиться этой страницей