从 struts.xml 中的 httpheader 结果引用 actionerror
在我的 TestClass 操作中,我使用 addActionError 方法设置操作错误。我在 struts.xml 中定义了一个操作,如下所示。
<action name="TestAction" class="TestClass">
<result name="input">/jsp/test.jsp</result>
<result name="error" type="httpheader">
<param name="error">409</param>
<param name="errorMessage">${SOME-EXPRESSION}</param>
</result>
</action>
其目的是让错误消息显示使用 addActionError 添加的任何内容。根据 org.apache.struts2.dispatcher.HttpHeaderResult 文档,我应该能够在 errorMessage 参数中使用 Ognl 表达式。
那么,是否可以在这种情况下用一些东西来代替 ${SOME-EXPRESSION} 来引用 actionerror。(我尝试了 ${actionerror} 但它不起作用)
我知道我可以通过声明我的在操作类中使用自己的字段(例如“errorText”),并使用 addActionError 的 insteda 在 param 标记内使用 ${errorText} 引用它。但在我走这条路之前,我想确保这是唯一的方法。
In my TestClass action I am setting an action error using addActionError method. I have an action defined in the struts.xml as following
<action name="TestAction" class="TestClass">
<result name="input">/jsp/test.jsp</result>
<result name="error" type="httpheader">
<param name="error">409</param>
<param name="errorMessage">${SOME-EXPRESSION}</param>
</result>
</action>
The intent is to have the error message display whatever was added using addActionError. According to the org.apache.struts2.dispatcher.HttpHeaderResult documentation, I should be able to use Ognl expressions within errorMessage parameter.
So, is it possible to put something in place of ${SOME-EXPRESSION} that will reference actionerror in this scenario.(I tried ${actionerror} but it didn't work)
I know that I can have a workaround by declaring my own field (for example "errorText") in the action class and using that insteda of addActionError referencing it using ${errorText} inside the param tags. But before I go that route, want to make sure that's the only way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
操作错误存储在列表中,因此您必须显示类似 ${actionErrors[0]} 的内容。但请记住,这样它只会显示您第一个添加的错误,而不是您使用 addActionError 包含的所有错误。
Action errors are stored in a list, so you'll have to show something like ${actionErrors[0]}. But keep in mind this way it will only show your first added error, not all those you have included using addActionError.