Передача параметра на следующую страницу JSP сторонней формой, генерируемой сервлетом - PullRequest
0 голосов
/ 31 марта 2011

Я пытаюсь исправить ошибку в устаревшем приложении в моей организации.Мне нужно передать дополнительный параметр в динамически генерируемой форме.

page1.jsp

<%
    request.setAttribute("param", param);
    // ...
%>

<form name="xx">   
    ...
</form>   
<jsp:include page="servlet1" />

Servlet1 вызывает другого Servlet2, который, в свою очередь, вызывает Servlet3 для печати некоторого кода на page1.jsp.Сгенерированный вывод HTML выглядит следующим образом:

<form name="xx">   
    ...
</form>   
<form name="yy" action="page2.jsp" >   
    ...   
    <input type="submit">   
</form>  

Мне нужно иметь возможность передавать значение "param" от page1.jsp до page2.jsp.request.setAttribute() не работает.Класс сервлета Servlet3 предоставляется поставщиком, поэтому я не могу установить скрытую переменную формы внутри формы "yy", чтобы передать ее в page2.jsp.

Как мне добиться этого другим способом?

1 Ответ

0 голосов
/ 31 марта 2011

Самый простой способ - использовать JavaScript для добавления скрытого поля ввода в форму.Добавьте следующий скрипт в конец вашего JSP, после точки, в которую вставлена ​​форма.

<script>
    var input = document.createElement("input");
    input.type = "hidden";
    input.name = "param";
    input.value = "${param}";
    document.forms['yy'].appendChild(input);
</script>

Однако вы зависите только от того, поддерживает ли JD конечный пользователь.Единственной альтернативой на стороне сервера было бы изменение выходных данных Servlet3 самостоятельно с помощью HttpServletResponseWrapper.

...