gpt4 book ai didi

java - 如何从JSP访问Liferay的SessionErrors对象?

转载 作者:行者123 更新时间:2023-11-30 08:15:05 33 4
gpt4 key购买 nike

如何从 JSP 访问 SessionErrors 对象?我试过了

<%@page import="com.liferay.portal.kernel.servlet.SessionErrors"%>

<%= SessionErrors.contains(request, "error-invalid-value") %> <br>
<%= SessionErrors.size(request) %>

但结果是 false 和 0。但是,错误标记工作正常(它显示抛出的错误)。

<liferay-ui:error key="error-invalid-value" message="error-invalid-value" />

在我的 Controller 中,我设置了如下错误:

//request is an ActionRequest.
SessionErrors.add(request, "error-invalid-value");

我正在尝试测试是否引发了“error-invalid-value”错误。

如果有帮助,这里是标签的源代码(我无法理解其中的任何内容):https://github.com/liferay/liferay-portal/blob/master/util-taglib/src/com/liferay/taglib/ui/ErrorTag.java

最佳答案

使用它的一种方法是

<liferay-ui:error key="error-invalid-value" 
message="translation-key-for-the-message-to-be-shown" />

如果您调用过 SessionErrors.add正如您在问题中所述,这将显示引用的消息。否则什么也不会显示。

使用它的另一种方法(因为它只是静态方法)是在 scriptlet 或您自己的标签中使用其常规接口(interface):

<% if(SessionErrors.size(renderRequest) > 2) { %>
Wow, you have triggered a lot of errors
<% } %>

查看完整interface of SessionErrors查找更多选项来查找特定错误、访问整个 key 集或其他信息

更新:在您发表评论后,我再次尝试,实际上错过了 PortletRequest SessionErrors 的参数:您可以使用 HttpServletRequest 添加错误或使用 PortletRequest (例如 actionRequest )。当您通过 ActionRequest 添加时,您必须使用 PortletRequest参数SessionErrors.doSomething ,而不是 HttpServletRequest 。在 JSP 上,requestHttpServletRequest ,而renderRequestPortletRequest 。这就是您想要用来获得结果的那个。

关于java - 如何从JSP访问Liferay的SessionErrors对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777813/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com