关闭

Struts2学习笔记四(result结果类型、防止表单重复提交)

70人阅读 评论(0) 收藏 举报

1、struts-default.xml 中result-types 主要常用dispather ,chain,redirect,redirectAction。

2、默认是dispather ,一般的请求转发。显示的url是 action的url

3、redirect,直接转发,相当于回到了客户端,重新发起请求,原来所带request丢失。显示转发后的jsp的url

4、redirectAction 请求,然后重定向

       例如:首先请求带着request,做登录login,然后再重定向(回到客户端)到其他action(做别的事,如list自己的工作),url显示的是list 后面一个重定向的url,可以有效防止表单重复提交

		<action name="login" class="com.yanlei.struts2.LoginAction"><pre name="code" class="html" style="font-size: 13.3333px;"><span style="font-size: 13.3333px; font-family: Arial, Helvetica, sans-serif;">                               			<result name="success" type="</span><span style="font-size: 13.3333px; font-family: Arial, Helvetica, sans-serif;">redirectAction</span><span style="font-size: 13.3333px; font-family: Arial, Helvetica, sans-serif;">"></span>
<param name="actionName">list</param><param name="username">${username}</param><param name="password">${password}</param><param name="usernameAndPassword">${usernameAndPassword}</param></result><result name="input">/login.jsp</result></action>


		<action<span style="background-color: rgb(255, 255, 102);"> </span><span style="color:#cc0000;"><span style="background-color: rgb(255, 255, 102);">name="list"</span> </span>class="com.yanlei.struts2.ListAction">
			<result name="success">/action2.jsp</result>
		</action>
           重定向的时候可以通过Param 传参数,${username} 表示login中的参数,传递给listAction,listAction中必须有属性接受这些参数,然后可以接受处理,        然后传递到action2.jsp

5、chain 请求之后继续请求(发生在服务器内部的请求),param是客户端传过去的参数,所以请求都一直没有回来,一直在服务器内部,param自然传不过去。

6、提交表单下 利用struts标签  <s:token></s:token>,客户端服务端生成随机ID,相同者第一次提交,不同则重复提交。

       提交的时候服务器端的ID会变化,客户端的不变;重复提交的时候客户端的没变,但是服务器端的在提交的时候已经变了,所以两个ID不同,则认为重复提交。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1373次
    • 积分:36
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:15篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档