二月

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  1 Posts :: 2 Stories :: 0 Comments :: 0 Trackbacks

   声明非本人作品,纯属个人爱好收藏,原文来至 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;
}

以上这些是常用的注解,灵活使用会给开发带来很多便利。另外还有一些,使用不是很频繁的这里就不做说明了。以后会有更详细的相关文档发布,再做详细说明。 

posted on 2009-04-09 16:44 二月 阅读(218) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: