Передать параметр из класса 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 />
Другие вопросы по тегам