Struts2.5.10.1是目前为止最新的版本,struts2建议持续跟进,理由大家都懂。好了,下面步入正题。

  基于struts2.5.10.1建立一个HelloWorld,基于注解的哈!

  工具:eclipse neon3,jdk8,tomcat8,windows10(无关紧要)

  需要的jar包:struts2官网下载

  (1)struts-2.5.10.1-min-lib.zip:用到解压后lib文件夹下的所有jar包;

  (2)struts-2.5.10.1-all.zip:struts2-convention-plugin-2.5.10.1.jar(因为要用到注解)。

  eclipse新建一个动态web工程HelloStruts2,拷贝上述中提到的jar包到工程的lib文件加下,然后引入到工程中;配置web.xml

  

 View Code

 

  在src下建立一个资源文件夹config,在其下建立struts.xml

  

 View Code

 

  在src下建立包com.HelloStruts2.action,然后在action下新建class,HelloWorldAction:

  

 View Code

 

  工程的WebContent下新建两个jsp页面,result.jsp和end.jsp两个页面,然后随意输入点内容,具体内容你开心就好。

然后加载到tomcat运行。

  运行后如果浏览器中的路径为:http://localhost:8080/HelloStruts2/,你看到的可能是你不想看到的,但是别慌,后面加上result.jsp或者end.jsp即可看到效果,并且控制台可以看到对应的输出。不加后续路径404的原因是因为web.xml中是这样写的:

  

 View Code

 

  不信邪的你,可以把result.jsp或者end.jsp其中一个加到其下再次运行试试看咯。

  下面说下注解(前提是引入struts2-convention-plugin-2.5.10.1.jar,不引入用不了注解,爱引不引):

  Namespace:Namespace注解用于指定Action所在的包的命名空间。该注解只有一个value参数,用于指定ACtion所属于的命名空间。

  当使用Namespace注解时,在为命名空间取名需要使用斜杠(/)开头,例如这样

  

 View Code

 

  通俗点:可以理解为“路径的概念”,我这里写“/”,因为懒;

  Result:Result注解用于定义一个Result映射,该注解包含四个参数,

  1)name:可选参数,用于指定Result的逻辑名,默认值为success

  2)location:必选参数,用于指定Result对应资源的URL

  3)type:可选参数,用于指定Result的类型,默认值为NullResult.class

  4)params:可选参数,用于为Result指定要传递的参数,格式为:{key1,value1,key2,value2,...}

  

 View Code

 

  Action:Action注解对应于struts.xml文件中的action元素。该注解可用于Action类上,也可用于方法上。这个注解包含一下的几个属性:

  1)value:可选参数,表示Action的名字

  2)results:可选参数,表示Action的多个Result映射。该属性用于定义一组Result映射

  3)interceptorRefs:可选参数,表示Action的多个拦截器。该属性用于定义一组拦截器

  4)params:可选参数,表示传递给Action的参数,格式为{key1,value1,key2,value2,...}

  5)exceptionMappings:可选参数,指定Action的异常处理类,他是一个Exception-Mapping的数组属性

  

 View Code

 

  上面讲解的写法和上上面举例的那个写法都没错哦,只是两种方式,我比较倾向于我上上面举例的写法。

  贴下运行结果图:

  

  

  title都是result,别误会,没毛病,只是两个页面的title都是result而已。

  对应的控制台输出: