idea中ssm使用ajax,【SSM 学习笔记 javaWeb IDEA】ssm的controller 传ModelAndView数据 给前台html的ajax(不用@ResponseBody)...

得有相关的json JAR包。json-lib和jackson2是不一样的。分清楚。

代码可以完美运行滴,可复制粘贴!前提你的相关配置没有错哦,数据库和后台,前台和后台都要连通。

先看看controller的代码,

我用@RequestMapping+@RequestBody将前台收来的表单数据封装成一个pojo,然后用Mybtis框架去数据库查找对应记录,最后包在ModelAndView里面返回给前端。

package com.ssm.controller;

import com.mysql.cj.xdevapi.JsonArray;

import com.ssm.pojo.userPojo;

import com.ssm.service.userService;

import net.sf.json.JSON;

import net.sf.json.JSONObject;

import net.sf.json.JSONString;

import org.codehaus.jackson.map.util.JSONPObject;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

//import org.springframework.web.portlet.ModelAndView;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.view.json.MappingJackson2JsonView;

import javax.annotation.Resource;

import javax.servlet.http.HttpSession;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

@Controller

@RequestMapping(value ="/user")

public class userController {

@Resource

private userService userService=null;

@RequestMapping(value = "/test")

public ModelAndView findUser2(@RequestBody(required = false) userPojo userPojo) {

ModelAndView mv = new ModelAndView();

System.out.println("后台获得的参数\n" + "userName="+userPojo.getUserName()+"\n" + "passWord="+userPojo.getPassWord());

//在数据库里找USER

userPojo findUser=new userPojo();

findUser.setUserName(userPojo.getUserName());

findUser.setPassWord(userPojo.getPassWord());

findUser.setCity(userPojo.getCity());

userPojo foundUser= this.userService.SelectUser(findUser);

System.out.println("数据库查到了该user\n且数据为"+foundUser.getUserName()+"\t"+foundUser.getPassWord()+"\t在"+foundUser.getCity());

List userPojoArrayList =new ArrayList();

userPojoArrayList.add(foundUser);

mv.setView(new MappingJackson2JsonView());

mv.addObject(foundUser);

return mv;

}

}

}

然后是前台的html表单+ajax请求。

html表单

$(document).ready(function () {

$("#commit").click(function() {

// var userName = $("#userName").val();

// var passWord = $("#passWord").val(); 这个一样可以用的

var data ={

userName:$('#userName').val(),

passWord:$("#passWord").val(),

city:$('#city').val()

}

$.ajax({

type:'post',

url:'./user/test.do',

// data: $("#AAFORM").serialize(),

// data:JSON.stringify({'userName':userName,passWord:passWord}),

data:JSON.stringify(data),

dataType:'json',

contentType:'application/json;charset=UTF-8',

//成功后的方法,返回的是一个modelAndView

// 即ModelAndView [view=

// [org.springframework.web.servlet.view.json.MappingJackson2JsonView:[MappingJackson2JsonView]];

// model={userPojoList=[com.ssm.pojo.userPojo@39e4b81c]}

// ]

success: function (result){

var o1 =JSON.stringify(result);

console.log(o1);

var o2=result.city;

console.log(o2);

var o3=$("result.city").val();

console.log(o3);

var o4=$(result.city).val();

console.log(o4);

var o5=JSON.parse(result);

console.log(o5);

var o6=JSON.parse(o1);

console.log(o6);

// window.location.href="001.html";

},

error:function () {

window.location.href="errorPage.html";

}

})

})

})

用户名:

密码:

city:

提交

运行结果~~~~

2f84aea3f0a1cce5543d1f8dcdd7f706.png

我们可以看到o1对象是后台传过来的json数据,但是要注意,后台传来的ModelAndView是设置了json视图滴,

即    mv.setView(new MappingJackson2JsonView());

且ajax里面的sucess:funtion(result){} 的result是json对象,不是json字符串,所以上图中o5相关的43行语句报错了

所以o1是正常输出的json格式的数据,因为它字符串化了~~

然后o2,o3,o4都是无效的取值方法~~同学们要引以为戒哦~~~

最后,根据这篇文章的阅读量再考虑要不要发其他的javaweb相关的学习内容吧~~~

虽然我很菜,但同学们有啥问题可以问我哦~~

标签:javaWeb,org,IDEA,userPojo,ssm,json,ModelAndView,var,import

来源: https://blog.csdn.net/weixin_41497690/article/details/110867970

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值