我有一个非常复杂的场景,我需要从jquery get Request更改java对象(基本上是HashMap)并获取响应并在jsp中打印它。用户可以根据请求发送请求数并从servlet获得单独响应并显示数据。
在每次请求之后我必须将地图放在会话中而不是在另一个请求中我在会话中得到相同的内容并进行更新并将其放回会话中。
JqueryGet(parameter) to Java.
Updating Hashmap according to parameter.
Putting hashmap in session . ( session.setAttribute("map",map))
sending response back to Jsp in jquery and print results in jsp.
Than another request send to Java .
it will get the map from session session.getAttribute("map",map) and than update the map based on new request .
Put the map again in session and so on....Than i have a submit button finally which will show the new data on the page and than update the server.
这是正确的做法吗?我的功能在Dev环境中正常运行。但我担心我是否应该使用DOM。如果我将使用DOM,它将非常复杂,因为我必须根据请求操纵很多Hashmap值。
这是jquery代码:
$.ajax({
url: '<%=portalContext.createTemplateProcessURI()%>'
+'?s1='+ $("#networkBox1").val()+'&box1=Box1&tick=add&val1='+ allvs+'&s2='+ $("#networkBox2").val()+'&box2=Box2&val2='+ allvs,
type: 'get',
dataType: 'text',
async: false,
success: function(data) {
Processbox(data); // This function displaying the result.
}
});
答案 0 :(得分:0)
伙计,首先,我认为在从后端获取数据后,您的java对象已经更改为json对象。我认为你的流程没有问题,因为一旦你改为DOM,那么所有的数据都是通过正面而不是后端发送的,如果你使用session,实际上你在后端处理数据,对我来说,我更喜欢第二个。
这是我的想法:
1.使用ajax中的数据来设置页面中的dom对象
$(domId).val(value get from ajax);
2.如果您不想显示数据,请在jsp表单中使用隐藏类型输入
<input type="hidden" id="domId" name="domName">
3.单击“提交”按钮,在servlet中处理数据
String data = request.getParameter("domName");
session.setAttributes("sessionData", data);
希望这会对你有所帮助。