Struts2的诠释成效

manbetx手机网页版,对于IJ这几个IDE工具以来,大家会设置一些插件来救助大家更好的拓展付出,像lombok就是一款不错的插件,使用证明的点子在品种编写翻译时拉拉扯扯我们转移代码,像getter,setter,tostring等等,它们一般都以有的重复的代码,而lombok就是援救大家转移那个重新代码的,对于3个IJ的工具以来,借使您不运行编写翻译时注明功效,那么项目在build时会报错!

我们知道经常状态下,Struts2是透过struts.xml配置的。但是随着系统规模的加大我们须要布置的文件会相比大,即便大家得以依照分裂的种类机能将不一致模块的布署文件单独书写,然后经过<include>节点将分化的配备文件引入到结尾的struts.xml文件中,然而到底依然要维护和管制那个文件,因而也会给保卫安全工作带来极大的困扰。为了消除那些难题,能够设想使用struts2的诠释。实际上struts第22中学最要紧的概念正是package、action以及Interceptor等等概念,所以只要理解这么些注脚就足以了。

打开build时的注释

 “Settings > Build >
Compiler > Annotation Processors”

manbetx手机网页版 1

下一场再安装lombok插件

manbetx手机网页版 2

在类型里布置关于lombok的依靠项

compileOnly('org.projectlombok:lombok:1.16.20')

最后就足以在代码中采取lombok的笺注了

/**
 * 用户实体
 *
* @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
* @Setter:注解在属性上;为属性提供 setting 方法
* @etter:注解在属性上;为属性提供 getting 方法
* @og4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
* @oArgsConstructor:注解在类上;为类提供一个无参的构造方法
* @llArgsConstructor:注解在类上;为类提供一个全参的构造方法
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
    @Id
    private String id;
    @NotNull
    private String name;
    private String email;
}

好了,启用插件表明就说到此地,感激阅读!

 

倘使愿意利用struts2的申明功能,必须使用四个包struts2-convention-plugin-2.1.8.1.jar,作者利用的条件是struts2.1.8.1。假使你采纳了区别的版本,找名字就行。

在以上所述的jar文件中定义了一一日千里的诠释,在那之中相比较重庆大学的是:

  • @ParentPackage,那几个表明对应了xml文件中的package节点,它只有叁特性能叫value,其实就是package的name属性;
  • @Namespace,命名空间,也即是xml文件中<package>的namespace属性;
  • @Action,那个评释对应<action>节点。那几个注解能够运用于action类上,也得以运用于艺术上。那几个注脚中有多少个属性:

    • value(),表示action的U本田CR-VL,也正是<action>节点中的name属性;
    • results(),表示action的多少个result;这么些个性是1个数组属性,由此可以定义八个Result;
    • interceptorRefs(),表示action的三个拦截器。那性格格也是三个数组属性,由此得以定义多少个拦截器;
    • params(),那是2个String类型的数组,它依据name/value的情势协会,是传给action的参数;
    • exceptionMappings(),那是万分属性,它是2个ExceptionMapping的数组属性,表示action的要命,在动用时必须引用相应的拦截器;
  • @Result,这些阐明对应了<result>节点。那几个评释只好选择于action类上。那个表明中也有多少个天性:

    • name(),表示action方法的再次来到值,也等于<result>节点的name属性,暗中认可境况下是【success】;
    • location(),表示view层文件的岗位,能够是相对路径,也足以是相对路径;
    • type(),是action的类型,比如redirect;
    • params(),是二个String数组。也是以name/value方式传送给result的参数;

实在,struts2中的主要注明便是这几个,当然了,还有地点提到的@interceptorRef和@exceptionMapping;基本上,驾驭了这几个注脚就足以了。

不过假诺想让这一个注明真正行事,必须在布置文件扩大多少个常量的定义:

  • struts.convention.default.parent.package:这几个常量表示缺省的包名是怎么样,因为在其实使用中,大家常常定义2个缺省的包,这些包中定义了一大堆的拦截器等等,然后此外的包继承自这一个包。这些常量能够配也得以不配;
  • struts.convention.package.locators:那个常量表示你的action类的java包的包名的后缀是甚:比如action。那个常量也能够不配;
  • struts.convention.package.locators.basePackage:那个常量表示你的action类的java包package的名字是啥;那些常量也能够不配;

如上几个常量都以扶助成效的,为了让申明真正的工作,必须在布局文件中追加<package>节点的布置,至少是<package name=”myPackage”
extends=”struts-default” />,那样注明就能够运用了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图