struts2 输入校验如果是对象?应该怎么处理

问题描述

LoginActionpublic class LoginAction extends ActionSupport {private UserService userService;private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}...login.jsp<body style="text-align: center;"><s:form action="Login!login" validate="true"><s:textfield name="user.admin_name" label="name" /><s:password name="user.admin_key" label="pwd" /><s:submit value="login" /></s:form></body>LoginAction-validation.xml<validators><field name="user.admin_name"><field-validator type="requiredstring"><message> This string is required </message></field-validator></field><field name="user.admin_key"><field-validator type="requiredstring"><message> This string is required </message></field-validator></field></validators>这样会报错,不知道怎么验证User这个对象 问题补充:<div class="quote_title">renpeng301 写道</div><div class="quote_div"><pre name="code" class="java">你得问题是不是 name="user.admin_name" 这样带对象名的 字段无法验证?</pre></div><br /><br />是的,就是这个问题,不知道该怎么处理

解决方案

<validators> <field name="user"> <field-validator type="visitor"> <message></message> </field> <field name="admin_name"> <field-validator type="requiredstring"> <message> This string is required </message> </field-validator> </field> <field name="admin_key"> <field-validator type="requiredstring"> <message> This string is required </message> </field-validator> </field> </validators> 就是这样 刚才在这里敲 没注意放置位置
解决方案二:
<field name="user"> <field-validator type="visitor"> <message></message> </field> 这个放到 <vaildators> 节点里
解决方案三:
使用 visitor校验器<field name="user"> <field-validator type="visitor"> <message></message></field><validators> <field name="admin_name"> <field-validator type="requiredstring"> <message> This string is required </message> </field-validator> </field> <field name="admin_key"> <field-validator type="requiredstring"> <message> This string is required </message> </field-validator> </field> </validators>
解决方案四:
你得问题是不是 name="user.admin_name" 这样带对象名的 字段无法验证?

时间: 2024-11-11 03:05:07

struts2 输入校验如果是对象?应该怎么处理的相关文章

Struts2输入校验(一) validate方法-validateXxx方法

这是一种编码校验的方法, 我重写ActionSupport父类的validate方法来实现 . Action执行时一定会执行validate方法, 若有不合格的输入 就调用addFieldError ("age", "年领应在0-200之间");方法. 1 login.jsp HTML标签: Html代码 错误信息 :<s:fielderror ></s:fielderror> <form action="login.acti

Struts2输入校验(二) 验证框架

一 文件名约定: 1) 验证XML的文件名: Action类名-validation.xml ,并与相关的Action类 放在一起. 2) 当一个Action中有多个业务方法时 : Action 类 名-映射名- validation.xml 什么是映射名:<action name="login".../> ,name属性的 值:login就是映射名,千万注意,很多人写错 例子: URL 是:http://localhost/struts/user_addUser. act

Struts2输入校验流程

1.类型转换器负责请求参数的类型转换,并将这些值设置成Action的属性值. 2.在类型转换中如果出现异常,将异常保存到ActionContext中,conversionError拦截器负责将其 封装到fieldError中,然后执行3,如无异常,直接进入3. 3.通过反射调用validatorXxx方法,Xxx代表处理用户请求的业务逻辑的方法名. 4.调用Action类的validator方法. 5.如果以上没有出现fieldError,则调用Action的业务处理方法,如有fieldErro

Struts2数据输入校验(1) —— 函数验证

用struts2标签库来实现上述目的的基本原理: 错误消息分为field级和action级,都在ActionSupport类中预定义了,不同的是, fieldError是通过一个Map来实现,事实上记录了field的名字和错误信息,因此能在页面上对应的 field中显示: 而actionError是通过一个Collection实现,没有记录报错的来源,只记录了错误信息. 注意,下面是简要流程: (1)页面提交到action之后,首先struts会尝试对输入的字符串信息根据Action中定义的属性

struts2中输入校验错误提示显示不出来

问题描述 我在struts2输入校验中.错误提示为什么老是显示不出来呢.就是配置文件中的<message>错误提示</message>这个标签中间的文字为什么没有像书上预期的显示出来呢 解决方案 解决方案二:http://blog.csdn.net/cnidb/archive/2009/04/04/4047886.aspx解决方案三:看看你的错误信息级别:分fielderror和actionerror两个级别,画面使用对应标签即可.validate()方法和框架验证都是存放在fie

Struts中使用validate()输入校验方法详解_java

1.在ActionSupport中有一个validate()方法,这个方法是验证方法,它会在execute()方法执行之前执行,所以能够起到很好的验证的作用. @Override //重写Action中的validate()方法 public void validate() { if(null==this.username||this.username.length()<4||this.username.length()>6){ this.addActionError("userna

害怕别人乱输数据吗?提高你的数据校验功能-AJAX输入校验(8)

7.4  AJAX输入校验 Struts 2框架在使用客户端校验的时候,由于需要转换为JavaScript脚本,所以并不是所有服务器端的校验规则均能转换为客户端校验,而AJAX校验则可以使用所有的服务器端校验规则. AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息,而不是所有表单填写完后单击"提交"按钮时显示校验信息. 在这里笔者简单演示一个示例,让读者体验A

Struts2 XWork校验框架出错

问题描述 Struts2 XWork校验框架出错 我刚开始学Struts2 遇到了这个问题有懂得朋友可以帮我下吗?谢谢 2015-5-16 15:58:02 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error严重: Document root element ""validations"" must match DOCTYPE root ""validators&quo

在Struts2 中 怎样通过ActionInvocation对象 获得访问者的ip

问题描述 在Struts2 中 怎样通过ActionInvocation对象 获得访问者的ip :好像是在getInvocationContext()里面 , 各位帅哥美女 !大哥大姐 ! 小弟菜鸟一个!请求支援啊 问题补充:laorer 写道 解决方案 Struts2中获得request及ip//在struts2中获得request HttpServletRequest request = ServletActionContext. getRequest(); //获得ip地址(防止代) pu