struts-config.xml 中 action 与 forward 的重要属性

时间:2023-03-09 16:55:45
struts-config.xml 中 action 与 forward 的重要属性

1、forward 的 redirect 可以为true、false(默认)、yes、no

  true和yes一样,false和no一样;

  redirect="false",容器内跳转,所以地址栏显示的是前一个action的地址,不显示转向页面的地址;

  容器内跳转不可以跳转到站外地址:比如说http://www.qq.com 相当于RequestDispatcher rd = request.getRequestDispatcher("/test.jsp").forward(request,response); 和跳转到的页面是同一次服务器请求,共享request,是在同一次request中完成的。

  redirect="true",容器外跳转,所以地址栏会显示转向的页面,可以跳转到站外地址; 相当于request.sendRedirect("/test.jsp");和跳转到的页面不是同一次服务器请求,不共享request,当然通过request.getParameter("XXX")或${requestScope.XXX}就获取不到值了。

2、action 中的 scope 属性,可以为 request,session(默认),将FormBean存到了session中,session中的key为attribute的属性值,如果attribute省略,其值和name相同。

3、action 中的 attribute 属性,一般省略,省略后其值和name相同。 表示在request或session中保存formbean时,为formbean取的名字。

4、如果有一个User 的实例化对象user放进了特定的域中(request,session),通过el表示取name属性

在request中:${requestScope.user.name}或者${user.name}

在session中:${sessionScope.user.name}或者${suer.name}

弄清楚上面的意思后,就知道对象在其中传递会产生怎样的“化学”反应,使用时情况很多,要注意。