最近在学HTML5和jquery,做一个小网站,遇到两个问题:
1.前后台数据传输我用的jquery ajax框架,传输方式用json,js代码如下:
[code="js"]
$('input[name=submit]').click(function() {
var userInfo = "userName=" + $('input[name=userName]').fieldValue() + "&password=" + $('input[name=password]').val();//.fieldValue() and .val() can both get the value
var options = {
url:'../doLogin.do',
type:'POST',
dataType:'json',
data:userInfo,
success: loginResponse
};
$.ajax(options);
});
function loginResponse(result) {
var loginRsl = eval(result);
if (loginRsl.loginResult == "登录成功") {
window.location = "search.html";
} else {
alert(loginRsl.loginResult);
}
}
[/code]
传输已经成功了,但是页面的跳转怎么实现?比如我login成功后希望跳转到我的主页去,这个怎么实现?普通的action的话,是通过mapping.findFarword()来做的。上网查了下,通过window.location = "search.html";实现了跳转,但是问题又来了,这时候我希望在search页面显示后台传回来的数据loginRsl.loginResult,这好像是取不到的,只能在login.html页面读取到这个值。
2.html5是静态语言,我现在需要动态实现画面,最常用的,像jsp一样,我需要一个for循环来根据后台返回的记录数动态的生成一个table,这样的又改如何实现,html里面不能写java代码吧。
1、对于loginRsl.loginResult的值,你在跳转到search.html的时候就已经确定了:
if (loginRsl.loginResult == "登录成功") {
window.location = "search.html";
}
所以就可以直接在search.html页面用"登录成功"。
如果不想这么用,那也可以把loginRsl.loginResult的值作为参数传递给search.html
如: window.location = "search.html?r="+loginRsl.loginResult;
2、通过jquery ajax调用后台,返回记录数,然后在success回调函数里进行拼装
记录,最后插入到的中即可,例子:用户类型 | 用户号码 | 用户名称 | 创建时间 |
---|
问题1不知道怎么弄,
问题2,最近在弄jQuery的ajax load,可以动态加载页面内容,也就是你可以使用jstl标签在JSP页面直接循环好了以后,通过ajax load这个页面的内容,不用在js里面拼接,这点比较方便