Struts2的证明功效

发布时间:2019-03-18  栏目:Python  评论:0 Comments

对于IJ那么些IDE工具以来,我们会设置一些插件来补助我们更好的进展支付,像lombok即是一款不错的插件,使用注明的法门在类型编写翻译时拉拉扯扯大家转变代码,像getter,setter,tostring等等,它们一般皆以局地再次的代码,而lombok就是支持大家转变那些重新代码的,对于一个IJ的工具以来,若是你不运营编写翻译时声明成效,那么项目在build时会报错!

小编们精晓经常状态下,Struts2是由此struts.xml配置的。可是随着系统规模的加大大家供给配备的文书会比较大,就算大家得以依据不一致的系统功用将分化模块的配置文件单独书写,然后通过<include>节点将分裂的配备文件引入到最终的struts.xml文件中,但是到底仍旧要爱惜和管制这么些文件,由此也会给保卫安全工作带来一点都不小的干扰。为了缓解这一个难点,能够设想采用struts2的诠释。实际上struts2中最要紧的定义正是package、action以及Interceptor等等概念,所以只要精通那个申明就足以了。

打开build时的注释

 “Settings > Build >
Compiler > Annotation Processors”

图片 1

下一场再安装lombok插件

图片 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节点,它唯有2本性子叫value,其实就是package的name属性;
  • @Namespace,命名空间,也正是xml文件中<package>的namespace属性;
  • @Action,那些证明对应<action>节点。这些证明能够利用于action类上,也足以选取于艺术上。这几个阐明中有多少个性子:

    • value(),表示action的U驭胜L,也正是<action>节点中的name属性;
    • results(),表示action的多少个result;那特天性是多少个数组属性,由此能够定义多少个Result;
    • interceptorRefs(),表示action的几个拦截器。这几个天性也是3个数组属性,由此得以定义多个拦截器;
    • params(),那是一个String类型的数组,它依据name/value的款式协会,是传给action的参数;
    • exceptionMappings(),那是那多少个属性,它是二个ExceptionMapping的数组属性,表示action的可怜,在利用时务必引用相应的拦截器;
  • @Result,这一个评释对应了<result>节点。这么些申明只可以动用于action类上。这几个注脚中也有多少个天性:

    • name(),表示action方法的重临值,也正是<result>节点的name属性,私下认可景况下是【success】;
    • location(),表示view层文件的职位,能够是相对路径,也得以是相对路径;
    • type(),是action的类型,比如redirect;
    • params(),是一个String数组。也是以name/value形式传送给result的参数;

事实上,struts第22中学的首要注明正是这几个,当然了,还有地点提到的@interceptorRef和@exceptionMapping;基本上,明白了这几个评释就足以了。

可是只要想让那么些注明真正行事,必须在安顿文件扩充多少个常量的定义:

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

如上七个常量都以帮扶功效的,为了让注明真正的工作,必须在铺排文件中追加<package>节点的布局,至少是<package name=”myPackage”
extends=”struts-default” />,那样注明就足以应用了。

留下评论

网站地图xml地图