上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.6.1 处理结果的改进
Action处理完用户请求后,将返回一个普通字符串,整个普通字符串就是一个逻辑视图名。Struts 2通过配置逻辑视图和物理视图之间的映射关系,一旦系统收到Action返回的某个逻辑视图名,系统就会把对应的物理视图呈现给浏览者。
图3.19显示了浏览者、控制器和视图资源之间的顺序图。
图3.19 浏览者、控制器和视图资源之间的顺序图
如图3.19中所看到的,Action处理完用户请求后,并未直接将请求转发给任何具体的视图资源,而是返回一个逻辑视图(这个逻辑视图只是一个普通字符串),Struts 2框架收到这个逻辑视图后,把请求转发到对应的视图资源,视图资源将处理结果呈现给用户。
相对于Struts 1框架而言,Struts 2的逻辑视图不再是ActionForward对象,而是一个普通字符串,这样的设计更有利于将Action类与Struts 2框架分离,提供了更好的代码复用性。
除此之外,Struts 2还支持多种结果映射:Struts 2框架将处理结果转向实际资源时,实际资源不仅可以是JSP视图资源,也可以是FreeMarker视图资源,甚至可以将请求转给下一个Action处理,形成Action的链式处理。