Передать параметр из класса Java в JSP с помощью ActionRequest Actionresponse
У меня есть функция сказать:
public void display(ActionRequest areq, ActionResponse ares) throws Exception,PortletException,IOException {
String name= areq.getParameter("name");
String add= areq.getParameter("add");
String phone= areq.getParameter("phone");
}
У меня есть JSP, скажем, disp.jsp, который передает пользовательский ввод для отображения выше функции. Теперь, после некоторой обработки вышеуказанных данных в функции display(), я хочу отобразить результаты на странице jsp, например, new.jsp. Как я должен идти вперед с этим? Я попробовал что-то вроде:
areq.setAttribute("name",name);
areq.getRequestDispatcher("new.jsp").forward(areq, aresp); but it shows an error that getRequestDispatcher is not defined for actionrequest and actionresponse.
Я использую фреймворк liferay
1 ответ
Решение
В своем действии вы можете установить атрибуты и установить страницу перенаправления следующим образом:
public void display(ActionRequest aReq, ActionResponse aResp){
aReq.setAttribute("name",name);
aResp.setRenderParameter("jspPage", "/new.jsp");
}
Я обычно предпочитаю устанавливать атрибуты вместо параметров, потому что это позволяет передавать не Sting переменные. Затем в JSP вы можете получить атрибуты
<%
String name = (String)renderRequest.getAttribute("name");
%>
Просто не забудьте включить это, чтобы иметь доступ к объекту renderRequest
<portlet:defineObjects />