if (this.isTokenValid(request)){ Add.jsp 注册新用户页面 InsertSuccessed.jsp 新记录添加成功 InsertFailed.jsp 新记录添加失败 Insertrepetition 重复添加提示 流程: 在首面里点击"添加新用户后" ----进入到Add.jsp----填写好表单后提交---- 成功---- insertSuccessed.jsp 新记录添加成功 失败---- InsertFailed.jsp 新记录添加失败 重复提交(或在insertSuccessed.jsp页刷新)---- Insertrepetition 重复添加提示 Action 结构: 因为用的是MappingDispatchAction, addjump 事件 用于从首面跳转到Add.jsp用的 insert事件 添加一条记录 首先要在表单提交前(也就是跳转到Add.jsp时)保存一个Token,所以在addjump 事件里要有 saveToken(request,true)语句; 这时你可以在Add.jsp的源码中看到一个隐藏域, 如:〈input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="6aa35341f25184fd996c4c918255c3ae"〉 提交上来后,到了insert事件里面了,这里要判断请求中的Token 和保存在会话中的Token是否一样,如果一样,则表明是第一次提交.如果不一样,则表明是"重复提交". 所以在insert 事件中要有判断的代码: view plaincopy to clipboardprint? // 表单不是重复提交 //这里是保存数据的代码 } else { //表单重复提交 saveToken(request); //其它的处理代码 } if (isTokenValid(request, true)) { // 表单不是重复提交 //这里是保存数据的代码 } else { //表单重复提交 saveToken(request); //其它的处理代码 }
|
|
来自: ThinkTank_引擎 > 《APP通信》