国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Struts2-15 表單重復(fù)提交

2019-11-08 02:48:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 表單的重復(fù)提交將加重服務(wù)器的負(fù)擔(dān),且可能導(dǎo)致錯(cuò)誤操作,故需要進(jìn)行避免。

1. 什么是表單的重復(fù)提交?

 若刷新表單頁(yè)面后再提交則不是表單的重復(fù)提交;表單的重復(fù)提交是指,在不刷新表單頁(yè)面的前提下,如發(fā)生以下任意情況:

多次點(diǎn)擊提交按鈕;已經(jīng)提交成功,回退后再次點(diǎn)擊提交按鈕;在控制器響應(yīng)頁(yè)面的形式為轉(zhuǎn)發(fā)情況下,提交成功后點(diǎn)擊 “刷新(F5)”。

2. 防止表單重復(fù)提交的基本原理

 基本原理如下圖所示:   這里寫圖片描述

3. 具體實(shí)現(xiàn)步驟

 第一步:在表單中添加s:token子標(biāo)簽;其作用是生成一個(gè)隱藏域,并在session中添加一個(gè)與隱藏域的值相同的屬性值。核心示例代碼如下所示:

<body> <s:form action="testToken"> <s:token></s:token> <s:textfield name="username" label="userName"></s:textfield> <s:submit></s:submit> </s:form></body>

 第二步:使用Token或TokenSession攔截器;

兩者均是解決表單重復(fù)提交問題的,但均不在默認(rèn)攔截器棧中,需要進(jìn)行手工配置;若使用Token攔截器,則需要配置name=invalid.token的result;若發(fā)生重復(fù)提交時(shí),該攔截器會(huì)轉(zhuǎn)到該配置頁(yè)面;若使用TokenSession攔截器,則不需要配置任何其他的result;若發(fā)生重復(fù)提交時(shí)則仍會(huì)響應(yīng)目標(biāo)頁(yè)面,但不會(huì)執(zhí)行后續(xù)攔截器,就想什么都沒有發(fā)生一樣。

 核心示例代碼如下所示:  

<action name="testToken" class="com.qiaobc.struts.action.TestTokenAction" method="execute"> <!--在defaultStack攔截器棧執(zhí)行前,先使用token攔截器--> <interceptor-ref name="token"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> <result>/success.jsp</result> <!--token攔截器:當(dāng)發(fā)生表單的重復(fù)提交時(shí),轉(zhuǎn)向token-error.jsp頁(yè)面--> <result name="invalid.token">/token-error.jsp</result> </action>

 注意:可以使用s:actionerror標(biāo)簽來(lái)顯示重復(fù)提交的錯(cuò)誤消息,該消息同樣可以在國(guó)際化資源文件中覆蓋,具體可參看struts-messages.PRoperties文件。


上一篇:LeetCode 43. Multiply Strings

下一篇:PAT 1005

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 内丘县| 铁力市| 金塔县| 桦甸市| 平武县| 威远县| 习水县| 双桥区| 龙游县| 筠连县| 太仆寺旗| 青铜峡市| 兴国县| 松溪县| 阿拉善左旗| 定边县| 姚安县| 玉林市| 东乡县| 章丘市| 香港| 公主岭市| 宽甸| 望城县| 太仓市| 盈江县| 平利县| 屯门区| 南昌县| 新郑市| 镇远县| 嘉兴市| 特克斯县| 昌都县| 宁都县| 杂多县| 甘孜县| 杭州市| 英德市| 安西县| 泾阳县|