我们之前编写的struts2程序,都使用了默认的结果类型即dispatcher
我们可以查看struts-default.xml文件,它里面为我们定义好了各种结果类型,如下图所示:
struts-default.xml.png一般而言我们只使用:
- dispatcher 转发至jsp
- chain 转发至Action
- redirectAction 重定向至 Action
- redirect 重定向至jsp
我们都知道Servlet中转发是既可以转到servlet也可以到转到jsp的,毕竟本质上他们都是servlet,而重定向本质不就是返回一个302消息么,struts2也许觉得对此需要更细致的划分吧,一般而言用的比较多的就是dispatcher以及redirectAction
redirectAction适用于解决表单重复提交的场景,dispatcher比较适用于显示结果
如果之前没有掌握好servlet中的重定向与请求转发的话,那么学习这部分内容其实是给自己找麻烦吧
这里就演示一下关于redirectAction的例子吧,主要介绍一下参数传递:
首先准备好前端页面:
login.jsp.png登录这个例子还是不错的
定义好LoginAction类:
loginAction.png这里就不显示setter&getter方法了
配置struts.xml中的LoginAction部分:
struts.png在这里如果想要传递动态值得话,那么得在LoginAction中设置成员变量并且赋值,上面代码中的username、password都是struts2自动帮我们赋值的而对于usernameAndPassword该属性而言是我们手工赋值的,并且该字段并没有对应上login.jsp中的表单元素,换言之,这是我们自己想要传递的额外值
编写Action2类:
Action2.png在struts.xml中对该Action进行配置:
strutsAction2.png结果页面:
output.png进行测试:
login.jsp.png在login.jsp中键入username、password并进行提交,显示结果如下:
output.png观察地址栏的变化:由login.jsp -> Action2.action上了,而不是LoginAction说明我们配置生效了
网友评论