struts2 结果类型介绍

我们之前编写的struts2程序,都使用了默认的结果类型即dispatcher

我们可以查看struts-default.xml文件,它里面为我们定义好了各种结果类型,如下图所示:

struts2 结果类型介绍_第1张图片
struts-default.xml.png

一般而言我们只使用:

  • dispatcher 转发至jsp
  • chain 转发至Action
  • redirectAction 重定向至 Action
  • redirect 重定向至jsp

我们都知道Servlet中转发是既可以转到servlet也可以到转到jsp的,毕竟本质上他们都是servlet,而重定向本质不就是返回一个302消息么,struts2也许觉得对此需要更细致的划分吧,一般而言用的比较多的就是dispatcher以及redirectAction

redirectAction适用于解决表单重复提交的场景,dispatcher比较适用于显示结果

如果之前没有掌握好servlet中的重定向与请求转发的话,那么学习这部分内容其实是给自己找麻烦吧

这里就演示一下关于redirectAction的例子吧,主要介绍一下参数传递:

首先准备好前端页面:

struts2 结果类型介绍_第2张图片
login.jsp.png

登录这个例子还是不错的

定义好LoginAction类:

struts2 结果类型介绍_第3张图片
loginAction.png

这里就不显示setter&getter方法了

配置struts.xml中的LoginAction部分:

struts2 结果类型介绍_第4张图片
struts.png

在这里如果想要传递动态值得话,那么得在LoginAction中设置成员变量并且赋值,上面代码中的username、password都是struts2自动帮我们赋值的而对于usernameAndPassword该属性而言是我们手工赋值的,并且该字段并没有对应上login.jsp中的表单元素,换言之,这是我们自己想要传递的额外值

编写Action2类:

struts2 结果类型介绍_第5张图片
Action2.png

在struts.xml中对该Action进行配置:

strutsAction2.png

结果页面:

output.png

进行测试:

struts2 结果类型介绍_第6张图片
login.jsp.png

在login.jsp中键入username、password并进行提交,显示结果如下:

output.png

观察地址栏的变化:由login.jsp -> Action2.action上了,而不是LoginAction说明我们配置生效了

你可能感兴趣的:(struts2 结果类型介绍)