声明:非本人作品,纯属个人爱好收藏,原文来至 http://www.easyjf.com/blog.ejf?cmd=doc&id=1245200 作者:天一
EasyJWeb中的注解
最近发现很多人对easyjweb的注解不太熟悉,因此简单的归纳讲解一下,希望对大家有帮助。
1、@Action :http://www.easyjf.com/blog/html/20071228/950273.html
这个在我的文章EasyJWeb注解的使用——简化Action层的开发讲的很清楚了,这里就不做过多说明。
2、@Inject
这个注解,看它的字面意思就知道,是用来注入某个属性的。比如你在某个action中要用到某个service,你就可以给这个属性加上@Inject注解和一个setter方法,就可以注入了。
示例代码:
public class BBSManageAction extends AbstractCmdAction {
@Inject
private IBBSDocService service;
public void setService(IBBSDocService service) {
this.service = service;
}
......
}
3、@DisInject
用来指定某个属性不注入,和@Inject相反,通常用在自动注入的情况下。参考:错误“无法加载属性指定名称的Bean”的解决办法
4、@Validator
用来指定所使用的验证器,以及验证方式和错误信息等。
属性介绍如下表:
属 性
|
描 述
|
name
|
验证器的名称,如required,string,range等
|
value
|
验证器的值,使用;号作为分隔符存放各个参数。如value="required;min:5;max:20"
|
msg
|
默认错误提示信息,当验证无法通过时显示的提示信息
|
field
|
字段名称,对于property及field类型的校验均可用,也是错误对象的主属性名称。可以用于多个字段,此时需要使用,隔开
|
displayName
|
定义对象的显示名称,默认情况下为field的名称,可以通过@Field中的name属性定义。
|
type
|
校验类型,默认是对属性进行校验 可以通过该值来指定验证器作用的对象
|
required
|
是否必填字段,每个验证器都可以通过设置属性required=true来指定该属性为必填项
|
key
|
多国语言显示建的名称,假如要使提示信息自动支持多国语言属性,则可以通过设置该值达到相应的目的
|
@Validator通常不单独使用,而是作为@FormPO和@Field的属性来使用,因此具体用法会在后面说明。
5、@FormPO
通常用在domain中,用来指定domain的名称、需要注入的字段、不允许注入的字段、数据验证等,主要功能就是注入和数据验证。
示例代码:
@FormPO(name="person",label="人物",inject="name,bornDate",disInject="id,loginTimes",disRead="bornDate",
validators={@Validator=(name="required",field="name,bornDate"))
public class Person{
private Long id;
private String name;
private Date bornDate;
private Integer loginTimes;
......
}
6、@Field
指定对象属性的名称、验证器、是否允许直接注入、验证器等信息。
示例代码:
class Person{
@Field(name="姓名",validator=@Validator(name="string",required=true;value="blank;trim;min:5;max:10"))
private String name;
private Date bornDate;
@Field(name="出生日期")
public Date getBornDate()
{
return bornDate;
}
}
7、@POLoad
该标签用来加载关联。在EasyJWeb中提供了一个非常实用的方法把Form中的数据传入模型(域)对象中,toPo过程中,我们可以把前台表单中的普通类型的属性值传入到模型对象中。但对于一些关联对象,我们在表单中只能存放关联对象的id,而在赋值的时候需要通过这个id从业务(或持久)层中加载这个对象,然后设置到指定的属性中,此时可以使用POLoad这个标签,他可以处理这个自动关联。
示例代码:
public class BBSDir
{
private Long id;
private String title;
}
public class BBSDoc
{
@Id
private Long id;
private String title;
@POLoad(name="dirId")
@ManyToOne
private BBSDir dir;
}
以上这些是常用的注解,灵活使用会给开发带来很多便利。另外还有一些,使用不是很频繁的这里就不做说明了。以后会有更详细的相关文档发布,再做详细说明。