如何使用struts2验证获取我设置的验证消息:
public void validate() {
addFieldError("user", "Invalid User");
}
我想从自定义tagLib中获取“无效用户”和“用户”字符串,以便打印如下:
public int doStartTag() {
pageContext.getOut().print( "Invalid User - user" )
}
更新: 这个例子是一个简化和非功能的用法,只是解释了我希望如何返回值,而不是我将如何使用它,但这是用例:
我想创建一个自定义tagLib,它从struts验证中输出错误。在单个tagLib中,我想验证页面是否包含给定输入的验证错误,然后在屏幕上打印错误内容。
Scriptlet,< logic:*,javascript - >这一切都是不可能的。
如果jsp意图保存文档的结构,那么具有内部特定规则的taglib比使用逻辑比较充斥页面更有意义。
我没有使用<s:fieldError />
(或那样的smth),因为它创建了一个我无法摆脱的ul
和li
结构,甚至将默认模板设置为“简单”< / p>
答案 0 :(得分:0)
Aleksandr M是对的。如果您只想更改标记吐出的标记,您绝对不想创建标记,您只想覆盖渲染它的模板。这很容易。您将从struts核心jar获取该模板的副本,对其进行编辑,并将其放入您的项目中。这是文档的链接:
http://struts.apache.org/2.3.4.1/docs/template-loading.html
注意,根据您的目的,您可以自己获取错误消息。它们都作为ActionSupport上的JavaBeans属性公开,您的操作应该继承这些属性,并且您可以使用OGNL表达式(例如属性标记)来访问它们。
注意,ActionSupport实现这些以完成它实现的ValidationAware接口的合同。