前台往后台传值呢,有很多种方式,大家听我细细道来。
// 前台传值方法
// 触发该方法调用ajax
function testAjax(yourData) {
$.ajax({
type: "get", // 以get方式发起请求
url: "/yourUrl?yourDataName=" + yourData, // 将你的请求参数以问号拼接到url中进行参数传递
success(data) {
// data为返回值
// 成功后的回调方法
}
})
}
// 后台接值方法
@RequestMapping("/yourUrl")
@ResponseBody
// @RequestParam("yourData")是必不可少的,因为他指定了链接中的参数名称
public String yourUrl(@RequestParam("yourData") String yourData) {
System.out.println(yourData);
// 返回值可以自由定义
return "SUCCESS";
}
// 前台传值方法,其实大体与上方相同只需注意url即可
// 触发该方法调用ajax
function testAjax(yourData) {
$.ajax({
type: "get", // 以get方式发起请求
url: "/yourUrl/"+yourData, // 将你的请求参数拼接到url中进行参数传递
success(data) {
// data为返回值
// 成功后的回调方法
}
})
}
// 后台接值方法
@RequestMapping("/yourUrl/{yourDataName}")
@ResponseBody
// 同样@PathVariable("yourDataName")必不可少,因为他指定链接中某个位置代表着名为yourDataName的变量
public String yourUrl(@PathVariable("yourDataName") String yourData) {
System.out.println(yourData);
// 返回值可以自由定义
return "SUCCESS";
}
// 前台传值方法
function testAjax() {
$.ajax({
type: "post", // 以post方式发起请求
url: "/yourUrl", // 你的请求链接
data:$("#myForm").serialize(), // 对id为myForm的表单数据进行序列化并传递到后台
success(data) {
// data为返回值
// 成功后的回调方法
}
})
}
// 后台接值方法
@RequestMapping("/yourUrl")
@ResponseBody
// 在这里我假设大家表单数据与User实体类相对应
public String yourUrl(User user) {
System.out.println(user.toString());
return "SUCCESS";
}
// 前台传值方法
function testAjax() {
$.ajax({
type: "post", // 以post方式发起请求
url: "/yourUrl", // 你的请求链接
data: { // 提交数据
"username": "admin", // 前者为字段名,后者为数据
"password": "admin"
},
success(data) {
// data为返回值
// 成功后的回调方法
}
})
}
// 后台接值方法
@RequestMapping("/yourUrl")
@ResponseBody
// 在这里我假设大家表单数据与User实体类相对应
public String yourUrl(@RequestParam("username") String username, @RequestParam("password") String password) {
System.out.println("username="+username+";password="+password);
return "SUCCESS";
}
PrintWriter out = response.getWriter();
try {
out.write("yourWillReturnData");
} catch (Exception e) {
e.printStackTrace();
}finally{
out.close();
}
// 无论通过那种方式,只需在前台Ajax得success回调方法中对数据进行处理即可,我们以user为例
success(user){
alert("返回的用户名为:"+user.username+"!!!密码为:"+user.password);
// 在浏览器控制台打印结果,点击f12可以查看
console.log("返回的用户名为:"+user.username+"!!!密码为:"+user.password);
}
非异步方式前台传递参数
<form id="myForm" class="layui-form" action="/yourUrl" method="post">
<input type="text" name="username" required placeholder="邮箱"/>
<input type="password" name="username" required placeholder="密码"/>
<button type="submit" class="layui-btn">登录button>
form>
<a href="/yourUrl?youDataName=yourData">问号传递参数a>
<a href="/yourUrl/yourData">拼接链接传递参数a>
非异步方式后台向前台传递数据
// 1.可以通过session进行参数传递
@RequestMapping("/yourUrl")
public String yourUrl(HttpServletRequest request) {
// 通过request获取session,然后向session中放入参数key-value
request.getSession().setAttribute("yourDataName", "yourData");
// 跳转到你的视图
return "/yourViews";
}
// 2.可以通过Model进行参数传递
@RequestMapping("/yourUrl")
public String yourUrl(Model model) {
// 向model中加入参数key-value
model.addAttribute("yourDataName", "yourData");
// 跳转到你的视图
return "/yourViews";
}
// 3.同样可以用request进行参数传递
@RequestMapping("/yourUrl")
public String yourUrl(HttpServletRequest request) {
// 通过request放入参数key-value
request.setAttribute("yourDataName", "yourData");
// 跳转到你的视图
return "/yourViews";
}
原文地址:https://www.cnblogs.com/smfx1314/p/10205736.html