SSM 增、删(ajax)

本来搭好了环境是用.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:

@Service
public 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我就不写了..太简单了

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

SSM框架是指Spring + SpringMVC + MyBatis框架的组合,可以用来构建Java Web应用程序。下面是一个简单的示例,演示如何使用SSM框架进行AJAX改查操作。 首先,确保你已经配置好了SSM框架,并且创建了相应的实体类和数据库表。 1. AJAX查询操作: 在前端页面中,使用AJAX发送一个GET请求到后端的Controller,然后由Controller调用Service层的方法,最终返回查询结果。 前端代码: ```javascript $.ajax({ url: "/yourControllerName/query", type: "GET", success: function(data) { // 处理查询结果 } }); ``` 后端代码: ```java @Controller @RequestMapping("/yourControllerName") public class YourControllerName { @Autowired private YourServiceName yourServiceName; @RequestMapping("/query") @ResponseBody public List<YourEntityName> query() { List<YourEntityName> list = yourServiceName.query(); // 调用Service层的查询方法 return list; } } ``` 2. AJAX操作: 在前端页面中,使用AJAX发送一个POST请求到后端的Controller,然后由Controller调用Service层的方法,最终返回新结果。 前端代码: ```javascript $.ajax({ url: "/yourControllerName/add", type: "POST", data: JSON.stringify(yourData), // 要新的数据 contentType: "application/json", success: function(data) { // 处理新结果 } }); ``` 后端代码: ```java @Controller @RequestMapping("/yourControllerName") public class YourControllerName { @Autowired private YourServiceName yourServiceName; @RequestMapping(value = "/add", method = RequestMethod.POST) @ResponseBody public String add(@RequestBody YourEntityName yourEntityName) { yourServiceName.add(yourEntityName); // 调用Service层的新方法 return "success"; } } ``` 3. AJAX修改操作和删除操作的示例与新操作类似,只需要在后端Controller中定义对应的RequestMapping和调用对应的Service层方法即可。 以上是一个简单的示例,实际的实现可能因具体需求而有所不同。希望对你有帮助!如果有任何问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值