jsp 丢失从后端传递的属性
jsp losing attribute passed from the backend
我的项目有问题。这是我的代码的一部分,我认为这是导致问题的原因。
@Override
public void dLMSreceiveInput(ActionRequest actionRequest,
ActionResponse actionResponse) throws ParseException {
dynamicLogic = actionRequest.getParameter("setlogic");
logic = actionRequest.getParameter("outerlogic");
PortletPreferences prefs = actionRequest.getPreferences();
dLMSSendRender(dLMSCreateQuery(actionRequest), actionResponse,
actionRequest);
}
public void dLMSSendRender(List<DLFileEntry> foundFiles,
ActionResponse actionResponse, ActionRequest actionRequest) {
if (foundFiles.size() == 0) {
actionResponse.setRenderParameter("jspPage", "/notFound.jsp");
} else {
actionRequest.setAttribute("DLMSFoundFiles", foundFiles);
actionRequest.setAttribute("urls", fileURL(themeDisplay, foundFiles));
actionResponse.setRenderParameter("jspPage", "/edit.jsp");
}
}
...我认为通过设置 RenderParameter 进行重定向存在问题。
actionResponse.setRenderParameter("jspPage", "/edit.jsp");
内容呈现,但当我在另一个 portlet 中执行操作时它消失了。
当我想显示我的结果时,有什么想法可以正确重定向吗?谢谢。
已解决。通过保存会话属性,而不是 actionRequest 属性。
HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest);
HttpSession session = request.getSession();
session.setAttribute("DLMSFoundFiles", foundFiles);
session.setAttribute("urls",fileDownloadURL(themeDisplay, foundFiles));
actionResponse.setRenderParameter("jspPage", "/edit.jsp");
在jsp
List<DLFileEntry> DLMSFoundFiles1 = (List<DLFileEntry>) session.getAttribute("DLMSFoundFiles");
Map<String, String> urls = (Map<String, String>) session.getAttribute("urls");
留在这里以供进一步使用。
我的项目有问题。这是我的代码的一部分,我认为这是导致问题的原因。
@Override
public void dLMSreceiveInput(ActionRequest actionRequest,
ActionResponse actionResponse) throws ParseException {
dynamicLogic = actionRequest.getParameter("setlogic");
logic = actionRequest.getParameter("outerlogic");
PortletPreferences prefs = actionRequest.getPreferences();
dLMSSendRender(dLMSCreateQuery(actionRequest), actionResponse,
actionRequest);
}
public void dLMSSendRender(List<DLFileEntry> foundFiles,
ActionResponse actionResponse, ActionRequest actionRequest) {
if (foundFiles.size() == 0) {
actionResponse.setRenderParameter("jspPage", "/notFound.jsp");
} else {
actionRequest.setAttribute("DLMSFoundFiles", foundFiles);
actionRequest.setAttribute("urls", fileURL(themeDisplay, foundFiles));
actionResponse.setRenderParameter("jspPage", "/edit.jsp");
}
}
...我认为通过设置 RenderParameter 进行重定向存在问题。
actionResponse.setRenderParameter("jspPage", "/edit.jsp");
内容呈现,但当我在另一个 portlet 中执行操作时它消失了。 当我想显示我的结果时,有什么想法可以正确重定向吗?谢谢。
已解决。通过保存会话属性,而不是 actionRequest 属性。
HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest);
HttpSession session = request.getSession();
session.setAttribute("DLMSFoundFiles", foundFiles);
session.setAttribute("urls",fileDownloadURL(themeDisplay, foundFiles));
actionResponse.setRenderParameter("jspPage", "/edit.jsp");
在jsp
List<DLFileEntry> DLMSFoundFiles1 = (List<DLFileEntry>) session.getAttribute("DLMSFoundFiles");
Map<String, String> urls = (Map<String, String>) session.getAttribute("urls");
留在这里以供进一步使用。