actionSupport类
该类实现了action接口和其他的几个有用的接口,比如数据校验、错误消息本地化等.继承该类后,这些功能便自动获得.
一、基本校验
public void validate(){
PortfolioService ps = getPortfolioService();
if ( getPassword().length() == 0 ){
addFieldError( "password", "Password is required.") );
}...
}
public String validateToRegView(){
...}
验证方法执行完,控制权返回到工作流拦截器,该方法没有返回值,秘密就在于校验生成的错误消息.
工作流拦截器会查看是否有错误消息生成,如果有的话,他会更改请求的工作流,终止请求处理并立即
返回到用户的输入表单页面.在页面上会显示错误消息.
二、为消息文本使用资源束
硬编码错误消息在action中是不可想象的,好的方式是采用外部资源束文件.
ActionSupport提供了两个接口实现该功能:
- com.opensymphony.xwork2.TextProvider提供了从资源束中提取消息的方法.ActionSupport类给出了实现.使用这些方法都需要指定key值,然后返回和该action关联的属性文件中key所对应的消息.
Register.properties:
user.exists=This user already exists.
username.required=Username is required.
password.required=Password is required.
portfolioName.required=Portfolio Name is required.
==该文件需要Action放在一起.并且文件名要一致==,然后即可通过getText()方法来访问消息了.
addFieldError("username", getText( "user.exists"));
- com.opensymphony.xwork2.LocaleProvider接口暴露了getLocale()方法.
ActionSupport实现了该接口检索用户设置在浏览器中的locale信息.
ActionSupport的TextProvider实现每次接受到消息文本时,也会检查locale信息,他是通过调
用LocaleProvider接口的getLocale()方法,然后定位到相应的属性文件.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34147.html