Как получить на стороне сервера атрибут html-элемента? - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть этот код:

out.println("<form action=\"srvSearchResults\" method=\"post\">");
out.println("<tr>");
Book b = freeBooks.get(i);
out.println("<td><input type='submit' data-isbn=\""+b.getIsbn()+"\" name=\"ddd\" value=\""+b.getTitle()+"\" style=\"padding:0; border:none; background:none; cursor:pointer\" ></td>");
out.println("<td>" + b.getIsbn() + "</td>");
out.println("<td>" + b.getAuthorName() + "</td>");
out.println("<td>" + b.getPublishDate() + "</td>");
out.println("<td>" + "Free to borrow!" + "</td>");
out.println("</tr>");
out.println("</form>");

Когда я нажимаю на Submit в сгенерированном коде, запускается функция сервлета, и в этой строке:

String isbn = request.getParameter("ddd");

Я пытаюсь получить значениеdata-isbn но это ноль.

Есть идеи, как получить атрибут data-isbn на стороне сервера после отправки?

1 Ответ

0 голосов
/ 30 декабря 2018

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

Если вы хотите получить свой ISBN, вы можете добавить дополнительное скрытое поле ввода, которое содержит его:

out.println("<input type='hidden' name='isbn' value='" + b.getIsbn() + "'>");

Вы можете поставить это сразу после открытого тега <form>.

Если вы отправите свою форму, вы можете использовать

String isbn = request.getParameter("isbn");

, чтобы получить ISBN.

В качестве примечания: <form> является недопустимым родителем для элементов <tr>.Поэтому возможно, что форма ведет себя не так, как вы намереваетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...