3

如何获取使用 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 />(或类似的东西),因为它创建了一个我无法摆脱的结构,甚至将默认模板设置为“简单ulli

4

1 回答 1

0

亚历山大 M 是正确的。如果您只想更改标签吐出的标记,您肯定不想创建标签,您只想覆盖正在呈现它的模板。这很容易。您将从 struts 核心 jar 中获取模板的副本,对其进行编辑,然后将其放入您的项目中。这是文档的链接:

http://struts.apache.org/2.3.4.1/docs/template-loading.html

请注意,根据您想要执行的操作,您可以自己获取错误消息。它们都在 ActionSupport 上作为 JavaBeans 属性公开,您的操作应该从这些属性继承,并且您可以使用 OGNL 表达式(例如在属性标记中)访问它们。

请注意,ActionSupport 实现这些以履行其实现的 ValidationAware 接口的合同。

于 2012-12-06T15:47:00.797 回答