如何在Struts2 </div>中的特定<div>元素中显示验证消息

时间:2011-06-24 08:36:15

标签: struts2

我是Struts 2的新手,在保持页面布局时遇到了这个问题:

<s:form action="abc.action"><br>
    <s:textfield key="name" label="Name" /><%--here I need to display errormessage for `name`--%>
    <br>
    <s:textfield key="email" label="Email" /><%--here I need to display errormessage for `email`--%>
    <br>
    <s:submit>
</s:form>

我正在为我的动作类使用xml-validator,这很好用。但验证错误消息显示在fieldname和text-box上。但我希望它后来各自的文本框(在另一个html容器内)。请建议。

3 个答案:

答案 0 :(得分:11)

如果您习惯于编写HTML,请切换到简单主题。

在struts.xml中可能是最好的地方:

<struts>
  <constant name="struts.ui.theme" value="simple" />
</struts>

然后只需使用 fielderror 标记将错误放在您想要的字段中。

熟悉Struts2标签是一件好事:http://struts.apache.org/release/2.3.x/docs/tag-reference.html

答案 1 :(得分:4)

根据Struts2默认模板,这是默认值。要进行更改,请参阅http://www.mkyong.com/struts2/working-with-struts-2-theme-template/

答案 2 :(得分:0)

您还可以使用 Struts2验证框架

验证框架附带一组有用的例程来自动处理表单验证,它可以处理服务器端以及客户端表单验证。如果没有某些验证,您可以通过实现java接口来创建自己的验证逻辑。

com.opensymphony.xwork2.Validator

Validator使用XML配置文件来确定应安装哪些验证例程以及如何将它们应用于给定的应用程序。 validators.xml文件包含所有常见的验证器声明。如果classpath中不存在validators.xml文件,则从路径

加载默认验证文件
com/opensymphony/xwork2/validator/validators/default.xml

验证者范围 Struts2验证框架中有两种类型的验证器。

  1. Field Validators
  2. 非字段验证器
  3. 字段验证器,如名称所示,对通过操作可访问的单个字段起作用。相反,验证器更通用,可以在完整的操作上下文中进行验证,在验证规则中涉及多个字段(甚至根本没有字段)。大多数验证可以基于每个字段进行定义。这应该优先于非字段验证,因为字段验证器消息绑定到相关字段,并将显示在相关视图中相应的输入元素旁边。

    <validators>
      <field name="bar">
          <field-validator type="required">
              <message>You must enter a value for bar.</message>
          </field-validator>
      </field>
    </validators>
    

    非字段验证程序仅添加操作级别消息。非字段验证器主要是特定于域的,因此提供自定义实现。 XWork提供的最重要的标准非字段验证器是ExpressionValidator。

    <validators>
          <validator type="expression">
                <param name="expression">foo lt bar</param>
                <message>Foo must be greater than Bar.</message>
          </validator>
    </validators>
    

    有关详细信息示例,请访问此链接link to struts2 validation