1.1 第14章 导航
14.1. 回顾传统的控制器导航方式
14.2. 两种导航方式
14.2.1. 静态导航
14.2.2. 动态导航
14.3. 高级导航
14.3.1. 零配置导航
14.3.2. 重定向
导航,简单来说就是Web页面间的跳转,是互联网中最基本最简单的功能。但同时,导航即使不是互联网中最重要的特性,也肯定是互联网中最常见的特性。如果把互联网中的一个个网站看作一个个城市,那么导航就是城市中的火车站,它决定着用户能否正确到达下一个城市,和如何到达。显然,最简单——也是最笨——的方法是,每个城市都修建到其它城市的直通路线:
图 14.1. 互联网导航方式
同样,在我们的开发中,如果在每个页面中都要编码导航目的地,并且必须让用户自己去选择。无论是维护成本还是用户体验,都是非常差的。更好的做法无疑是,建立一套调度系统,每个城市只需要知道如何进入调度系统,由调度系统去保证火车正确到达目的地:
图 14.2. 调度系统方式
1.2 14.1. 回顾传统的控制器导航方式
在传统的JSP开发中,主要是通过servlet进行导航:
在servlet中,一般跳转都发生在doGet, doPost等方法里面。
· redirect 方式
response.sendRedirect("/welcome.jsp");
sendRedirect可以跳转到任何页面。
· forward方式
RequestDispatcher dispatcher = request.getRequestDispatcher("/welcome.jsp").forward(request, response);
forward方式只能中转到本应用中的页面。
在Struts中,主要是通过配置文件进行导航
struts-config.xml文件中配置如下导航规则:
<action path="/LoginAction" type="org.operamasks.LoginAction" name="LoginForm">
<forward name="success" path="/welcome.jsp" />
<forward name="fail" path="fail.jsp" />
</action>
通过ActionBean的execute方法返回一个actionForward来进行跳转,如:return mapping.findForward("success");将会通过导航规则找到forward中的name="success"所对应用的path页面来进行导航。
|