перезагрузить форму с тем же параметром предыдущего - PullRequest
0 голосов
/ 24 мая 2010

У меня действительно проблема в том, что я не знаю, как с ней справиться. Я использую JSP и сервлет с Eclipse IDE. Прежде всего, пользователь заполняет HTML-таблицу значениями, которые он выбрал и записал в форму. после этого он найдет свои параметры, отображаемые в таблице HTML. проблема сейчас в следующем: таблица содержит в каждой строке кнопку редактирования при нажатии на нее; пользователь должен иметь форму, автоматически заполненную значениями «ранее выбранных» строк. так что это как перезагрузить форму с переменными из таблицы HTML. Примечание: я строю таблицу с сервлетом. Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 27 мая 2010

Например, вы должны заполнить поля FirstName и LastName и заполнить таблицу.

Когда вы отправляете форму в сервлете, вы создаете объектный класс POJO, в котором сохраняются имя и фамилия.

Ваш класс POJO может быть таким.

public class MyClass{
     private java.lang.String firstName = null;
     private java.lang.String lastName = null;
     public MyClass(java.lang.String firstName, java.lang.String lastName){
          this.firstName = firstName;
          this.lastName = lastName;
     }
     public void getFirstName(){
          return firstName;
     }
     public void getLastName(){
          return lastName;
     }
}

Теперь в вашем сервлете вы создаете объект этого класса POJO, как этот, и помещаете его в хеш-таблицу. После этого поместите хеш-таблицу в сессию.

 MyClass myClassObject = new MyClass(request.getParameter("firstName"), request.getParameter("lastName"));
 java.util.Hashtable htMyClassObjects = (java.util.Hashtable)request.getSession(false).getAttribute("htMyClassObjects");
 if (htMyClassObjects == null){ // For the first time, it will be null
      htMyClassObjects = new java.util.Hashtable();
 }
 htMyClassObjects.put(java.lang.String.valueOf(htMyClassObjects.size()), myClassObject);

В вашей таблице, при нажатии кнопки, передайте ключ хеш-таблицы, связанный с этой строкой. Ибо так.

<input type = "button" onclick="location.href='myjsp.jsp?rowNumber=<%=hash table key%>'" />

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

Мой ответ немного разборчив. Но попробуйте реализовать это.

0 голосов
/ 24 мая 2010

Просто предварительно заполните атрибут value элементов ввода HTML соответственно. В сервлете вы помещаете бин с данными в область запроса, перенаправляете запрос в JSP, а затем в JSP делаете, например:

<input type="text" name="foo" value="${bean.foo}">

Обратите внимание, что когда это данные, управляемые пользователем , вы можете рисковать XSS атак . Затем вы должны экранировать ввод, используя JSTL fn:escapeXml:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<input type="text" name="foo" value="${fn:escapeXml(bean.foo)}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...