本文主要是介绍Struts中的chain和redirectAction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
chain和redirectAction的区别
chain 它是一个琏式的,是从一个Action转发另外一个Aciton,写action的名字即可,并把前一个Action的请求参数和值传给下一个Action
chain的使用场景:我需要连续执行好几个action,好几个action共用数据,保留下来,比如现在网站的注册,先在一个页面月度一些条款,在下一步填写部分的数据,下一步在填写一些数据,最后又填写数据,最后一步提交,万一提交失败,前面填写的数据可以保存住。分了三个页面,每一个页面的数据来自同一个action,这就好做了,如果每一页来自一个不同的action,怎么做?想保存数据?怎么做保存,用chain,好几个action的数据保存住 该种方式底层使用的转发原理。
因此在请求之后的值栈将包括初始请求的action对象和其模型驱动和转发后的action对象和其模型驱动。如此,这样的一次请求无论请求了多少个action,都会将请求过程的数据保存在值栈中,这样方便了数据的回显。例如注册流程中的每一步都请求不同action不同方法时可使用此种请求方式将用户填写过的数据保存下来,以便回显,增强用户体验。
看一下底层到底干嘛了?
redirectAction 底层使用的是重定向原理,重定向到一个指定的action的name。因为是重定向所以会发生两次请求,所以在第二次请求时,第一次请求创建的值栈以及值栈中的action对象、模型驱动对象都会消失(值栈的声明周期是一次请求期间)。在第二次请求时有会有新的值栈,这个值栈的对象栈中只有一个当前访问的action对象或模型驱动的model对象。这种重定向的方式请求的action一般作为页面的跳转使用,不会涉及到数据的处理。
这篇关于Struts中的chain和redirectAction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!