1. 转发
2. 重定向
<action name="helloAction" class="cn.hd.hello.HelloAction" method="hello">
<!--resul
name:对应的是action类中的 method的返回值名字可以
随便写,只要和action类中的返回值结果一样就可以,
但是一般情况下使用特定
type:dispatcher 转发
redirect 重定向
标签中间的值:跳转页面的地址
-->
<result name="success">/hello.html</result>
</action>
3. 转发到自己的Action
<result name="success" type="chain">
<!--跳转到下一个action的action的名字-->
<param name="actionName">targetAction</param>
<!--跳转到下一个action的命名空间-->
<param name="namespace">/</param>
</result>
4. 重定向到自己的Action type变为redirectAction
<result name="success" type="redirectAction">
<param name="actionName">targetAction_login</param>
<param name="namespace">/</param>
</result>
5. 不跳转接收ajax请求
(1) 使用原生的servlet Api
ActionContext在struts2中,我们把它叫做数据中心。
Requset 原生对象
Response 原生对象
Session 原生对象
ServletContext 原生对象
Requset 域 Map Struts2不建议使用,如果要用就用ActionContext对象
Session 域 Map
ServletContext Application 域 Map
Attr 域 Map
ActionContext生命周期:
所有的servlet对象都存了,他的生命周期是随着其中最短的人而创建和销毁。他就是request对象
每次请求到来,ActionContext都会重新创建
所以他解决了线程安全问题
使用ServletApi相应 ajax请求
1. 首先获得response对象(2种方法)然后回到原生态servlet相应中
2. action 中的方法的返回值必须是NONE(如果设置为none那么在struts.xml中就不用书写result标签了)
(2) Stream
1. 在Action类中 创建一个InputStream对象
2. 给这个对象增加一个get方法
3. struts.xml中的result标签中设置 type=stream
4. Action最终可以将json字符串转化为inputStream流
(3) 使用json插件
1. 导包
2. 建立一个ajax类
定义你想要返回的json的键名
生成getset方法
然后在Action访问的方法中为这个json键名的对象进行赋值
3. 设置struts.xml文件
重新建package extends 继承不能写struts-default要写jaon-default(在struts-json-plugin包中)
Action不变
result name 属性不变 type属性变为json(在struts-json-plugin包中struts-plugin.xml中)