rest插件实现restful风格第1集(Struts2)

  1. struts2插件算得上是她腾飞的翅膀,这里先直接感受下rest插件简单事例。
  2. 看一下rest插件,规则
==========================================URL映射表,发送一个请求调用Action的哪个方法=====================================================
				The following URL's will invoke its methods: 
				
				说明:movies代表action名,Thrillers代表参数名(可以是int,也可以是String根据业务选定)
				
				//查看产品信息页面
				GET: /movies => method="index" 									常用于展示所有产品信息页面
				GET: /movies/Thrillers => method="show", id="Thrillers" 		常用于查看某一个产品详情
				
				//进入一个操作页面(下面两种方式等价)
					===>根据底层源码可以得到这样一个公式:/movies/参数xxx/指定调用的action的方法名(GET请求 )
				GET: /movies/Thrillers;edit => method="edit", id="Thrillers" 	常用于编辑某个产品信息(进入一个编辑的操作页面)
				GET: /movies/Thrillers/edit => method="edit", id="Thrillers" 
				
				GET: /movies/new => method="editNew" 							常用于创建一个新产品(进入一个创建的操作页面)
				POST: /movies => method="create" 								常用于创建一个新的产品
				
				//在操作页面进行修改或删除操作
				PUT: /movies/Thrillers => method="update", id="Thrillers" 		常用于编辑一个产品(进行了编辑操作)
				DELETE: /movies/Thrillers => method="destroy", id="Thrillers" 	常用于删除一个产品(进行删除操作)
				
				To simulate the HTTP methods PUT and DELETE, since they aren't supported by HTML, the HTTP parameter "_method" will be used. 

				===========================================根据resultCode(通常是Action方法返回的结果)返回那个页面=======================================
				1.创建ResultTypeConfig有两种方式:
						(1).从xml相关资源中createFromResources
						(2).从注解中createFromAnnotations
				//比如第(1)种通过配置:
						<constant name="struts.convention.result.path" value="/WEB-INF/content/"/>
				从当前项目的WEB-INF/content/目录下寻找资源来构建result:
						(a).resultPath=/WEB-INF/content,
						(b).resultPrefix = /WEB-INF/content/movies
						(c).ResultConfigs(Map数据结构):
							{deleteConfirm=com.opensymphony.xwork2.config.entities.ResultConfig@918059d,
							index=com.opensymphony.xwork2.config.entities.ResultConfig@c7a801d5,
							edit=com.opensymphony.xwork2.config.entities.ResultConfig@c00fd4c9, 
							success=com.opensymphony.xwork2.config.entities.ResultConfig@5fef2d46}
						根据返回的resultCode来找到返回的视图ResultConfig,比如返回的是"index",
						可找到com.opensymphony.xwork2.config.entities.ResultConfig@c7a801d5,
						此对象中含有/WEB-INF/content/movies-index.jsp,可作为返回的页面。
				====>通过源码可以得出这样一个公式:"/WEB-INF/content/movies-index.jsp通过substring()方法截取到index作为ResultConfigs的key(resultCode)
				逆向反过来:通过resultCode可以构建出返回的页面名称,比如resultCode="abc",则movies-abc.jsp (movies为actionName)
				

3.项目结构图
在这里插入图片描述

  1. 主代码文件
有需要的可私信作者!

					  @author:拈花为何不一笑
  1. 项目演示
现在开始 >>>>>>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置文件说明 >>>>>>


	<!-- Restful相关常量Bean配置 -->
	
	<!--  通过扫描指定包(比如com.bs.action)后来确定包中那些类可以作为Action,这个配置指定以Controller结尾的类可作为Action。
		这与struts2中指定的请求url的后缀名完全是两码事,比如:/hello.action。
		rest风格的action构建与struts2风格差别比较大,rest风格构建acton有两种方式:
		(1).一种是扫描指定包结合下面这个配置等信息来构建ActionConfig
		(2).另一种是扫描指定包结合@Action注解等信息来构建ActionConfig,这个需要配置常量bean:
		<constant name="struts.convention.action.mapAllMatches" value="true" />
		这个配置相当于一个开关,由它来确定是否使用@Action注解来构建ActionConfig。
	-->
	<constant name="struts.convention.action.suffix" value="Controller" />
	
	<!-- PackageBasedActionConfigBuilder类中指定defaultParentPackage:
		根据name得到value,把value作为参数赋值给defaultParentPackage。
		用于指定构建的action继承的父包为:rest-default -->
	<constant name="struts.convention.default.parent.package" value="rest-default" /> 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

rest插件实现restful风格第2集(Struts2) , 更新中.....

	

猜你喜欢

转载自blog.csdn.net/Netaa001/article/details/82830958