- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何从 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 上,request
是 HttpServletRequest
,而renderRequest
是 PortletRequest
。这就是您想要用来获得结果的那个。
关于java - 如何从JSP访问Liferay的SessionErrors对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777813/
我是一名优秀的程序员,十分优秀!