Хобрук: Ваш путь к мастерству в программировании

как я могу передать значение из javascript в класс java в struts2?

function redirect(id){
alert(id);

document.forms["AddToCart"].submit();
}

Это мой джаваскрипт. Как я могу передать значение «id» в AddToCart.java. Я использую структуру struts2.


Ответы:


1

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

<form name="AddToCart" ... >
...
<input type="hidden" id="myid"/>
.....
</form>

тогда

function redirect(id){
document.getElementById('myid').value = id;

document.forms["AddToCart"].submit();
}
02.02.2012

2

Есть много способов сделать это, и один из самых простых способов — передать его как скрытое поле формы.

что-то типа

<s:hidden value="" name="my_ID" id="my_ID"/>

и в вашем javascript вам нужно установить это скрытое поле ввода, например

function redirect(id){
alert(id);
document.getElementById("my_ID").value=id;
document.forms["AddToCart"].submit();
}

последний шаг - создать аналогичное свойство в вашем классе действий с его геттером и сеттером, а фреймворк введет значение формы в уважаемое свойство.

public class MyAction extends ActionSupport{

  private String my_ID  // data type can be as per your requirements
  getter and setters

  public String execute() throws Exception{
     return SUCCESS;
  }

}

это все, что вам нужно сделать, и вы сможете получить значение внутри вашего класса действий в свойстве my_ID. Я предполагаю, что AddToCart - это ваш класс действий Struts2, иначе вам нужно передать значение вашему классу из вызываемого вами действия.

02.02.2012
  • Спасибо. Я пробовал со скрытым полем, и я получаю значение в своем классе java из javascript. 02.02.2012

  • 3

    Вы не можете общаться с client(javascript) на server side(java classes) напрямую. Потому что javascript выполняется вашим браузером, а классы java выполняются вашим сервером. Поэтому вам нужно использовать Ajax request для связи с классами Java.

    02.02.2012
  • Спасибо вам. Я попытался реализовать это с помощью скрытого поля, и это работает для меня. 02.02.2012
  • Ajax нужен только в том случае, если он хочет сделать это без перезагрузки страницы, вы всегда можете передать параметры в классы java, либо добавив параметры в строку URL, либо отправив форму 02.02.2012

  • 4

    Поскольку вы отправляете форму, вы можете динамически создать новый ввод в этой форме, содержащий идентификатор, который вы хотите отправить, а затем отправить форму.

    02.02.2012

    5

    Нам нужно сделать две вещи, чтобы отправить значение в класс действий в struts2.

    • отправить требуемое значение с конкретным именем параметра
    • создайте переменную с тем же именем, что и в jsp, и создайте методы setter, getter для этой переменной.

    в классе действий

    public class AddToCart{
    private String itemId;
    
    public String getItemId(){
    return itemId;
    }
    public void setItemId(String id){
    this.itemId=id;
    }
    }
    

    это сработает.

    02.02.2012
    Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

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

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..