lucca 2015-03-07 07:03 采纳率: 0%
浏览 813

spring 多表增删改查 多次操作不刷新

不知道是jsp页面代码的问题 还是控制器写的有问题

增加连续写到第3个吗四个服务器就不动了 也不报错
主要的控制器部分代码如下

 ​@RequestMapping(value = "/addRiddle")
    public String addRiddle (Riddle riddle, HttpServletRequest request) {

        riddleServ.save(riddle);
        return this.getAllRiddle(request);

    }

    @RequestMapping(value="/getAllRiddle")
    public String getAllRiddle(HttpServletRequest request) {

        List<Riddle> riddles = this.riddleServ.getAllRiddles();
        request.setAttribute("riddles", riddles);
        return "/pages/curd/showriddle";

    }

    @RequestMapping(value="/del")
    public String delRiddle(String id, HttpServletRequest request) {

        riddle = riddleServ.getById(id);
        this.riddleServ.delect(id);
        this.getAllRiddle(request);
        return "/pages/curd/showriddle";

    }

jsp的showriddle的主要部分

 <script type="text/javascript">
    function del(rId)
    {
        window.location.href="/game-1.0.1/riddle/del?id="+rId;
        windows.location.reload();
    }

    function update(rId)
    {
        window.location.href="/game-1.0.1/riddle/updateById?rId="+rId;
        windows.location.reload();
    }
</script>

  </head>

  <body>
    <div align="center">

          <table border="1">
              <tr>
                <td colspan="6"><h1>show list</h1></td>
              </tr>
              <tr>

                  <td>属性名</td>
                  <td>谜语名</td>
                  <td>谜语信息</td>
                  <td colspan="2">操作</td>                                   
              </tr>
              <c:forEach items="${riddles}" var="r">                    
                  <tr onmouseover="this.bgColor='pink'" onmouseout="this.bgColor=''">

                      <td>${r.character.cName}</td>
                      <td>${r.rName}</td>
                      <td>${r.rInfo}</td>
                      <td><input type="button" value="删除" onclick="del(${r.rId})"/></td>
                      <td><input type="button" value="修改" onclick="update(${r.rId})"/></td>                                  
                  </tr>                    
              </c:forEach>
              <tr>
                  <td colspan="3"><a href="/game-1.0.1/pages/curd/addriddle.jsp">添加</a></td>
              </tr>

          </table>
      </div>

麻烦大家帮忙看看 谢谢

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 11:33
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Spring MVC中,如果你想要对数据进行多次更新和删除而不刷新整个页面,你可以使用@ModelAttribute注解来实现。这个注解会在每次请求时都为模型对象赋值。

    首先,你需要将你的Controller方法重命名为saveOrUpdate,因为save会自动刷新页面。

    然后,在@ModelAttribute注解上添加value参数,指定你希望保存或更新的数据的名称。

    例如:

    @RequestMapping("/saveOrUpdate")
    public String saveOrUpdate(@ModelAttribute("riddle") Riddle riddle, HttpServletRequest request) {
    
        // 在这里处理逻辑
    }
    

    这样,每当有新的数据被提交给控制器时,saveOrUpdate方法就会被执行,并且不会影响当前页面的渲染。这将会导致数据被保存或更新,而不需要重新加载整个页面。

    请注意,这种方法可能会导致一些性能问题,因为它会重复计算某些字段(如id)的值。因此,如果可能的话,请尝试避免频繁地调用此方法。

    评论

报告相同问题?