验证概念
Struts 2验证是通过XML或注释配置的。动作中的手动验证也是可能的,并且可以与XML和注释驱动的验证结合使用。
验证还取决于验证和工作流拦截器(两者都包含在默认拦截器堆栈中)。验证拦截器自己进行验证,并创建特定于字段的错误的列表。工作流拦截器检查是否存在验证错误:如果找到任何验证错误,它将返回“输入”结果(默认情况下),将用户带回到包含验证错误的表单。
如果我们使用默认设置,并且我们的操作未定义“输入”结果,并且存在验证(或偶然发生类型转换)错误,我们将收到一条错误消息,告诉我们没有“输入”为操作定义的结果。
很简单,您可以通过验证配置文件或批注将验证器映射到字段。然后
validation通过拦截器堆栈,自定义堆栈或显式或隐式引用该动作,然后将其应用于该动作
defaultStack。
验证开始时,它将调用验证管理器以执行实际验证并将错误保存到
ValidationAware操作中。
您的操作应实现此接口,或仅扩展
ActionSupport已实现的位置以保存错误。然后
workflow拦截器检查那些错误,如果发现任何错误,则重定向到
input结果,如果没有发现错误,则执行操作调用。您还可以通过实现接口将
编程 验证添加到操作中
Validateable,该接口
ActionSupport默认情况下已实现,因此可以覆盖
validate()方法。
作为对基于XML的验证的补充,您还可以应用基于注释的配置。这仅是服务器端验证,客户端验证是通过Struts标签应用于浏览器启用的javascript的,该标签用于将验证内容呈现到要验证的页面上。
所有这些概念都不适用于需要身份验证的操作(除非将身份验证拦截器应用于该操作)。如果您使用JAAS身份验证,则应考虑采取措施来实施
PrincipalAware或使用
roles拦截器来限制对检查的措施的访问
isUserInRole()。
Action.LOGIN如果未对用户进行身份验证,则可以使用result返回到身份验证拦截器中的登录页面,如是否可以在不使用struts.xml示例的情况下重定向到另一个操作类。



