- result标签里面除了name属性之外,还有一个属性type属性
- type属性:如何到路径里面(转发还是重定向)
一般像默认的是转发值是dispatcher
而做重定向操作值是redirect
struts.xml中的配置
<action name="book" class="cn.zhoushicanyin.Action.BookAction">
<result name="success" type="dispatcher">/world.jsp</result>
</action>
<action name="orders" class="cn.zhoushicanyin.Action.OrdersAction">
<result name="success" type="redirect">/hello.jsp</result>
</action>
BookAction
public class BookAction extends ActionSupport {
@Override
public String execute() throws Exception {
return BookAction.SUCCESS;
}
}
OrdersAction
public class OrdersAction extends ActionSupport {
@Override
public String execute() throws Exception {
return OrdersAction.SUCCESS;
}
}
转发
重定向
- type属性两个值 dispatcher,readirect 这两个值一般针对到页面中配置
- 配置到其他的action里面
- chain:转发到action 一般不同 缓存问题
- redirectAction:重定向到action
struts.xml中的配置改一下
<action name="book" class="cn.zhoushicanyin.Action.BookAction">
<result name="success" type="dispatcher">/world.jsp</result>
</action>
<action name="orders" class="cn.zhoushicanyin.Action.OrdersAction">
<result name="success" type="redirectAction">book</result> //重定向到book中
</action>
BookAction中为了验证过程在其中写一个打印语句
public class BookAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("hello book!");
return BookAction.SUCCESS;
}
}
OrdersAction也同样
public class OrdersAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("hello orders!");
return OrdersAction.SUCCESS;
}
}
访问的是http://localhost:8080/struts2_day02/orders.action
页面跳转到了world.jsp中
控制台也打印出相关的数据
所以可以说明这个程序大致运行顺序是访问完orders中的execute 就重定向到book中 访问完book中的execute的方法 就转发到world.jsp中
END!!!!!!!