要求:前端只能用html,不能用jsp(当然也就不存在jsp的el表达式的方式,即使用$符号传参这种形式)。
场景:有个页面,是一个用户列表,列表中有30行用户。点击某一个用户的查看按钮,显示该用户的详情。
实现过程(最原始的方式):
1)点击查看按钮,触发一个http的url的request请求如http://127.0.0.1:8080/testProject/user/view?userId=iu87y6t65re4r5t6yg7u78u8i9i0o876
2)执行User类中的view方法,返回一个user_view.html给用户。
3)user_view.html中写一个js方法getUserDetail(),在user_view.html这个页面被加载的时候,就执行。getUserDetail()方法中,调动jQuery的ajax方法,获取包含用户信息的json字符串,然后对json字符串解析,并通过JavaScript的getElementById等,将用户信息(如姓名、性别、年龄、学历等)写入user_view.html中的相应位置。
function getUserDetail(){
var href="http://127.0.0.1:8080/testProject/user/getUserDetailById";
jQuery.ajax( {
url : href,
async : false,
data : UserId,
type : "post",
cache : false,
dataType : "json",
success : function(F, D, C) {
//D即是包含该用户信息的json字符串
});
} else {
mini.alert(F, '操作失败提示');
}
}
})
}
===
以上方法有个问题,就是jQuery的ajax方法中,是有传入参数的即UserId,这个UserId是怎么从后端传递过来的?
所以以上方法并不可行。
可行的方法是,在执行User类中的view方法时,将该用户的信息,夹杂在html代码中,由程序员自己拼接成user_view.html页面(跟servlet一样),返回给用户。也就是说,User类中的view方法,来实现渲染过程。