SSM 增、删(ajax)

来源:互联网 发布:淘宝网西服 编辑:程序博客网 时间:2024/06/11 02:01

本来搭好了环境是用.jsp来完成这项工作的,奈何写好后一直无法连接数据库获取数据,折腾了一天试了各种方法都不行,最终放弃了….改用.html代替

先发下我的目录吧,仅供参考
这里写图片描述
**

springmvc配置:

使用.jsp时如下:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">          <property name="prefix" value="/WEB-INF/" />          <property name="suffix" value=".jsp" />      </bean>

改为html后男票给了段代码,据说里面也有很深的坑..我就没有细究了,直接拿来用

 <bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">              <property name="order" value="10"></property>              <property name="prefix" value="/WEB-INF/pages/"></property>              <property name="contentType" value="text/html"></property>          </bean>

需要下载jquery-3.2.1.min.js并在html中导入

 <script src="/js/jquery-3.2.1.min.js"></script>

index界面代码:

id:<input type="text" name="userid" id="p1"/><br/>    账号:<input type="text" name="username" id="p2"/><br/>  密码:  <input type="text" name="password" id="p3"/><br/>    <input type="submit" value="submit" id="register"/>    <input type="submit" value="delete" id="delete"/>

controller中index的代码(也是我设置的Tomcat的默认访问路径):

@RequestMapping(value = "/index")    public ModelAndView index() {        ModelAndView mav = new ModelAndView();        mav.setViewName("index.html");//index.jsp        return mav;    }

下面使用ajax来传递数据,这里我用delete方式做例子

一、post方式

index.html代码:

<script>$("#delete").click(function () {            var jsonData={};            jsonData.userid=$("#p1").val();            $.ajax({                type: "get",                url: "/doDelete",                dataType: 'json',               contentType: "application/json;charset=utf-8",                data: JSON.stringify(jsonData),                success: function (data) {                    if(data == -1)                        alert("该用户不存在");                    else                        $(location).attr('href', 'bank');                },                error: function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            });        });</script>

controller代码

@RequestMapping(value = "/doDelete")    @ResponseBody    public Integer doDelete( @RequestBody User user) {        Integer result;        Integer userid=user.getUserid();        try{            result=userService.delete(userid);        }catch(Exception e){            result = -1;        }        System.out.println(result+" "+userid);        return result;    }
  • 这里有必要附上add的方法给大家做参考,因为jsonData此处为一个对象,看它获取userid调用的jsonData.userid=$("#p1").val();就可以知道。

  • 而之前ssm给的默认代码里,delete传入的是Interger,而add传入的是**对象**user,所以add中可以直接使用,而delete中需要先传入对象,再从对象中getuserid来进行接下来的操作,如果直接将传入类型定为Interger会出现数据类型不匹配的问题。

ajax

<script>    $(document).ready(function() {        $("#register").click(function () {            var jsonData={};            jsonData.username=$("#p2").val();            jsonData.password=$("#p3").val();            $.ajax({                type: "post",                url: "/doRegister",                dataType: 'json',                contentType: "application/json;charset=utf-8",                data: JSON.stringify(jsonData),                success: function (data) {                    if(data == -1)                        alert("用户名已经被注册");                    else                        $(location).attr('href', 'bank');                },                error: function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            });        });</script>

controller

@RequestMapping(value = "/doRegister",method = RequestMethod.POST)    @ResponseBody    public Integer doRegister(@RequestBody User user) {       Integer result;        try{            result=userService.add(user);        }catch(Exception e){            result = -1;        }        return result;    }

二、GET方式

真的没写过get方式啊啊啊啊啊啊,上网查大家也都是用的post啊啊啊啊啊,此处艰辛难以言表,又用了半天的时间才写出来……据男票大大说采用的是restful的(风格?)反正我又发挥了我的观察和模仿能力【微笑】,最后男票大大亲临才给我讲明白的…

ajax:

 $("#delete").click(function () {            $.ajax({                url: "/deDelete/"+$("#p1").val(),                method : "get" ,                data : {                },                dataType : "json",                success : function(data){                    if(data == -1)                        alert("该用户不存在");                    else                        $(location).attr('href', 'bank');                },                error : function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            })        });

controller:

@RequestMapping(value="/deDelete/{userid}",method=RequestMethod.GET,produces="application/json;charset=UTF-8")    public @ResponseBody Integer doDelete(@PathVariable("userid") Integer userid){        Integer result;        try{            result=userService.delete(userid);        }catch(Exception e){            result = -1;        }        System.out.println(result+" "+userid);        return result;    }

这里要注意get方式url的书写方式,因为需要在url中显示获取的信息所以不需要像post那样用变量来获取userid了,直接写在url后面就可以了,注意是附在引号外面的。我卡在这里主要是基础不扎实的缘故…get和post一直混乱分不清。

然后就是要注意url和controller中value值的对应

以及@PathVariable("userid"),这里与post区别较大

其实到现在很多注解我都是知其然不知其所以然…基本也是模仿着别人写的,自己写代码的时间太少了所以经验不足,以后要多加努力哦~~不管怎么说到现在进步都很多了。

最后附上ssm增加、删除两份的完整代码


访问index.html,输入数据,选择注册或者删除,然后跳转到bank.html界面显示数据库中的所有用户数据

controller:

@Controller@RequestMapping("")public class DemoAction {    private UserService userService;    @Autowired    public void setUserService(UserService userService) {        this.userService = userService;    }//doregister    @RequestMapping(value = "/doRegister",method = RequestMethod.POST)    @ResponseBody    public Integer doRegister(@RequestBody User user) {       Integer result;        try{            result=userService.add(user);        }catch(Exception e){            result = -1;        }        return result;    }    //doDelete   /* @RequestMapping(value = "/doDelete")    @ResponseBody    public Integer doDelete( @RequestBody User user) {        Integer result;        Integer userid=user.getUserid();        try{            result=userService.delete(userid);        }catch(Exception e){            result = -1;        }        System.out.println(result+" "+userid);        return result;    }*/    @RequestMapping(value="/deDelete/{userid}",method=RequestMethod.GET,produces="application/json;charset=UTF-8")    public @ResponseBody Integer doDelete(@PathVariable("userid") Integer userid){        Integer result;        try{            result=userService.delete(userid);        }catch(Exception e){            result = -1;        }        System.out.println(result+" "+userid);        return result;    }    //out    @RequestMapping(value = "/out",method = RequestMethod.POST)    @ResponseBody    public List<User>  out() {        List<User> us=new ArrayList<User>() ;        us=userService.list();        return us;    }    //http://localhost/index    @RequestMapping(value = "/index")    public ModelAndView index() {        ModelAndView mav = new ModelAndView();        mav.setViewName("index.html");//index.jsp        return mav;    }    //http://localhost/bank    @RequestMapping(value = "/bank")    public ModelAndView bank() {       ModelAndView mav = new ModelAndView();        mav.setViewName("bank.html");//bank.jsp        return mav;    }}

index.html:

<!DOCTYPE html><!-- saved from url=(0098)http://www.17sucai.com/preview/501914/2017-05-17/p2p%E6%89%8B%E6%9C%BA%E5%85%A8%E7%AB%99/info.html --><html><head>    <script src="/js/jquery-3.2.1.min.js"></script></head><body>  id:<input type="text" name="userid" id="p1"/><br/>    账号:<input type="text" name="username" id="p2"/><br/>  密码:  <input type="text" name="password" id="p3"/><br/>    <input type="submit" value="submit" id="register"/>    <input type="submit" value="delete" id="delete"/><script>    $(document).ready(function() {        $("#register").click(function () {            var jsonData={};            jsonData.username=$("#p2").val();            jsonData.password=$("#p3").val();            $.ajax({                type: "post",                url: "/doRegister",                dataType: 'json',                contentType: "application/json;charset=utf-8",                data: JSON.stringify(jsonData),                success: function (data) {                    if(data == -1)                        alert("用户名已经被注册");                    else                        $(location).attr('href', 'bank');                },                error: function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            });        });        /* $("#delete").click(function () {            var jsonData={};            jsonData.userid=$("#p1").val();            $.ajax({                type: "get",                url: "/doDelete",                dataType: 'json',               contentType: "application/json;charset=utf-8",                data: JSON.stringify(jsonData),                success: function (data) {                    if(data == -1)                        alert("该用户不存在");                    else                        $(location).attr('href', 'bank');                },                error: function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            });        });         */       $("#delete").click(function () {            $.ajax({                url: "/deDelete/"+$("#p1").val(),                method : "get" ,                data : {                },                dataType : "json",                success : function(data){                    if(data == -1)                        alert("该用户不存在");                    else                        $(location).attr('href', 'bank');                },                error : function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            })        });    });</script></body></html>

bank.html:

<!DOCTYPE html><!-- saved from url=(0098)http://www.17sucai.com/preview/501914/2017-05-17/p2p%E6%89%8B%E6%9C%BA%E5%85%A8%E7%AB%99/info.html --><html><head>    <script src="/js/jquery-3.2.1.min.js"></script></head><body>  id:<input type="text" name="userid" id="p1"/><br/>    账号:<input type="text" name="username" id="p2"/><br/>  密码:  <input type="text" name="password" id="p3"/><br/>    <input type="submit" value="submit" id="register"/>    <input type="submit" value="delete" id="delete"/><script>    $(document).ready(function() {        $("#register").click(function () {            var jsonData={};            jsonData.username=$("#p2").val();            jsonData.password=$("#p3").val();            $.ajax({                type: "post",                url: "/doRegister",                dataType: 'json',                contentType: "application/json;charset=utf-8",                data: JSON.stringify(jsonData),                success: function (data) {                    if(data == -1)                        alert("用户名已经被注册");                    else                        $(location).attr('href', 'bank');                },                error: function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            });        });        /* $("#delete").click(function () {            var jsonData={};            jsonData.userid=$("#p1").val();            $.ajax({                type: "get",                url: "/doDelete",                dataType: 'json',               contentType: "application/json;charset=utf-8",                data: JSON.stringify(jsonData),                success: function (data) {                    if(data == -1)                        alert("该用户不存在");                    else                        $(location).attr('href', 'bank');                },                error: function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            });        });         */       $("#delete").click(function () {            $.ajax({                url: "/deDelete/"+$("#p1").val(),                method : "get" ,                data : {                },                dataType : "json",                success : function(data){                    if(data == -1)                        alert("该用户不存在");                    else                        $(location).attr('href', 'bank');                },                error : function (XMLHttpRequest, textStatus, errorThrown) {                    console.log(XMLHttpRequest.status);                    console.log(XMLHttpRequest.readyState);                    console.log(textStatus);                }            })        });    });</script></body></html>

userSevice:

@Servicepublic class UserService {    private UserMapper userMapper;    @Autowired    public void setUserMapper(UserMapper userMapper) {        this.userMapper = userMapper;    }    public List<User> list(){        return userMapper.list();    }   public Integer add(User user){       return userMapper.insert(user);   }    public Integer delete(Integer userid){        return userMapper.deleteByPrimaryKey(userid);    }}

mapper和user我就不写了..太简单了

以上是这三天的痛苦挣扎结果…虽然很简单的东西但是因为没有基础做起来还是真的很辛苦的,遇到了无数个报错,真的是有时候都要放弃了…
至少写完后整个流程终于清楚多了…可喜可贺= =干巴爹~~