【问题标题】:Struts 2 Validation errorStruts 2 验证错误
【发布时间】:2011-03-30 09:56:57
【问题描述】:

在尝试添加名称时,我想验证名称是否为空,我在 xml 文件 Designation-validation.xml 中使用了以下代码

<field name="desgName">
    <field-validator type="requiredstring">
        <message>Please enter designation name</message>
    </field-validator>
</field>

但它不起作用,它在我的数据库中添加了一个空的名称。但它在我的控制台中显示以下行

2011 年 3 月 30 日下午 3:17:18 com.opensymphony.xwork2.util.logging.commons.CommonsLogger 错误 严重:desgName 的验证错误:请输入指定名称

有人可以帮忙吗?提前谢谢...

【问题讨论】:

  • 如果能添加jsp的代码,struts.xml就好了。
  • 动作类也无伤大雅。

标签: java validation struts2


【解决方案1】:

验证规则ActionName-validation.xml.
应该是DesignationAction-validation.xml?
或者,确保 Action 扩展了 ActionSupportActionSupport 的子类

// Action
public class DesignationAction extends ActionSupport{ 
  @Getter @Setter private String desgName;
}  

【讨论】:

  • 我没有扩展 ActionSupport 或 ActionSupport 的子类。但我无法理解 ActionSupport 验证的必要性。
  • @shinod 可以说需要 ActionSupport 来进行验证。参见ActionSupportValidationAware的API
【解决方案2】:

根据日志,字段验证正在工作,并且由于您没有指定“修剪”参数,默认情况下,字符串将在长度检查为零之前被修剪,因此验证应该按照您的意愿进行,看起来它在表单提交时被忽略。

其他字段验证是否有效?这可能是由于配置问题。您在 JSP 中使用过&lt;s:fielderror&gt; 吗?

在此处查看如何设置所有内容,以防您遗漏了某些内容 -

http://struts.apache.org/2.x/docs/validation.html

http://struts.apache.org/2.1.6/struts2-core/apidocs/com/opensymphony/xwork2/validator/validators/RequiredStringValidator.html

【讨论】:

  • @voidnull,没有验证适用于该页面中的所有字段。是的,我在 jsp 文件中使用了
  • @shinod - 您是否检查过您的工作流拦截器是否配置正确?它是工作流拦截器,它检查是否存在验证错误,如果发现任何错误,则将用户带回包含验证错误的表单。见这里 - http://struts.apache.org/2.x/docs/validation.html#Validation-TurningonValidation
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多