java Web表单提交后台的处理机制

一般浏览器表单时前台会做一次校验,然后后台需要对表单做二次校验,
如果校验不通过,则将信息反馈到前台,同时页面上数据不允许有丢失,
请问各位大神是怎么把信息反馈到前台的,同时页面上数据不允许有丢失?
我知道的解决方法:
通过ajax提交表单,后台将错误信息封装到json中返回到前台,这样可以做到把信息反馈到前台的,同时页面上数据没有丢失。
但是如果通过form表单直接提交,怎样做到把信息反馈到前台的,同时页面上数据没有丢失呢?

7个回答

如果是form提交可以设置form的target将请求提交到iframe,当iframe加载完成时,将iframebody的json数据取出来,以前也做过,不过很少写前台,没法给你详细代码

你这个是Ajax 的 问题对吧,如果你想使用 form 方式 提交 请在 Ajax 请求 XHR 头部添加
content-type : application/x-www-formurlencoded 即可提交出去的数据就是就是表单类型了,
并且你的请求消息体内应该为Query 字符串格式也就是 a=xxx&b=zzz 这种格式,xxx 和 zzz 别忘了做 urlencoded 编码哦

hgq0916
奔腾的野马 可能我没说清楚,我说的是通过form表单直接submit而不是ajax提交的方式怎么解决页面数据丢失的问题
大约 2 年之前 回复

通过js提交,就可以避免页面跳转和刷新了。
如果非要用form直接提交的话, 了解一下struts2框架的form 标签。

wushucheng18
诚哥丿 回复hgq0916: 你提交form到后台,后台action处理请求,然后转发到另外一个action,但是你的form已经提交了转发是你服务端做的事情,浏览器的页面还是会发生跳转的。这样的功能建议使用js提交,用jq validator 校验参数,让不符合的参数无法提交就好了。
大约 2 年之前 回复
hgq0916
奔腾的野马 我用的Struts2,我想通过action转发的方式,这样同一个请求参数不会丢失,但是这样页面的url地址不会改变
大约 2 年之前 回复

主要看你用什么框架,有一些框架是可以完成你说的功能的,但是有些完成不了,需要你提示错误时把数据给前端返回去,form表单也一样

xcgh
xcgh 你主动返回值吧
大约 2 年之前 回复
hgq0916
奔腾的野马 我用的Struts2
大约 2 年之前 回复

后端可以使用modelAttribute接收参数,如果二次校验不通过,返回原页面,并且把之前的参数对象传到前端页面,后端自己来填充form内的参数

HttpServletRequest 后台直接用这个 request.getparameter(); 取。 返回用model封装数据就可以

校验不成功将提交的数据再返回来,前台填写到form的对应标签了,但这么作不是脱裤子放屁么? 还是直接用ajax提交吧。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐