如何在Spring-boot中向控制器发送一个单元的id

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Spring-boot中向控制器发送一个单元的id相关的知识,希望对你有一定的参考价值。

当我点击单元格时,将表格的单元格的id发送给控制器的最佳方法是什么?我尝试使用Ajax,但它给了我403 post error,我无法解决它。当我点击一个单元格时,content()函数被激活,但我不知道如何将这个单元格的id发送给控制器,我的目标是将id发送到控制器然后在数据库(mysql)中更改状态true的特殊元素并回到jsp。

这是我的模特

@Entity 
public class Room {
    private int id;
    private String  hour1;
    private boolean hour1confirm;
    private String  hour2;
    private boolean hour2confirm;
    private String  hour3;
    private boolean hour3confirm;
    private String  hour4;
    private boolean hour4confirm;
    private String  hour5;
    private boolean hour5confirm;
    private String  day;

这是我的jsp

<body>

<div class="container" align="center">
          <table  class="table table-bordered" >
             <thead>
                <tr>
                  <th>\Days \Hours</th>  <th>8 - 10</th>   
                  <th >10 - 12</th> <th >12 - 14</th> 
                  <th >14 - 16</th> <th >16 - 18</th> 
                </tr>
             </thead>
                <tbody>
                    <c:forEach items= "${rooms2}" var="m" >
                    <tr>
                     <td style="background-color:OldLace">${m.day }</td>
                     <c:choose>
                         <c:when test="${m.hour1confirm==false}">
                           <td style="background-color:green" id="${m.hour1}"  onclick="content1(this)" >${m.hour1 }</td>
                           </c:when>
                          <c:otherwise> <td style="background-color:red"> Reserved</td> </c:otherwise>
                           </c:choose>

                           <c:choose>
                                <c:when test="${m.hour2confirm==false}">
                               <td style="background-color:green" id="${m.hour2 }" onclick="content1(this)">${m.hour2 } </td>
                             </c:when>
                             <c:otherwise> <td style="background-color:red"> Reserved</td> </c:otherwise>
                             </c:choose>

                              <c:choose>
                                <c:when test="${m.hour3confirm==false}">
                                  <td style="background-color:green" id="${m.hour3 }" onclick="content1(this)">${m.hour3 } </td>
                                </c:when>
                              <c:otherwise> <td style="background-color:red"> Reserved</td> </c:otherwise>
                              </c:choose>

                              <c:choose>
                                <c:when test="${m.hour4confirm==false}">
                                  <td style="background-color:green" id="${m.hour4 }" onclick="content1(this)">${m.hour4 } </td>
                                </c:when>
                              <c:otherwise> <td style="background-color:red"> Reserved</td> </c:otherwise>
                              </c:choose>

                              <c:choose>
                                <c:when test="${m.hour5confirm==false}">
                                  <td style="background-color:green" id="${m.hour5 }" onclick="content1(this)">${m.hour5 } </td>
                                </c:when>
                              <c:otherwise> <td style="background-color:red"> Reserved</td> </c:otherwise>
                              </c:choose>


                        </tr>
                        </c:forEach>
                </tbody>
          </table>
<br>
</div>
<br>


</body> 
<script >

var idt;
function content1(elem)
   {
    $(function() {
        var token = $("meta[name='_csrf']").attr("content");
        var header = $("meta[name='_csrf_header']").attr("content");
        $(document).ajaxSend(function(e, xhr, options) {
            if (options.type == "POST") {
                xhr.setRequestHeader(header, token);
            }
        });
    });
         idt=elem.id;
             $.ajax({

             url:"/reservation2",
                    type: 'POST',
                    data:  idt,             
                    dataType: "text",          
                    contentType: "text/plain",
                   // mimeType: false,
                    success: function(response){ 
                        console.log(data);              
                        return false;     
                    } 
                });
    }
答案

我找到了答案,所以我在这里分享。我可以使用Get而不是Post,在我使用的jsp中

$.ajax
    ({  method : 'GET',
        url : 'reservationTest?room_id='+id})

在控制器中:

@RequestMapping(value = "/reservationTest", method = RequestMethod.GET)   
    public void reservationAjax(HttpServletRequest req) 
    {
            //String id = req.getParameter("room_id");
            String id = req.getParameter("room_id");
.
.
.

以上是关于如何在Spring-boot中向控制器发送一个单元的id的主要内容,如果未能解决你的问题,请参考以下文章

单元测试时如何在 Angular 1.5 中向 $componentController 添加依赖项

如何在 Spring-boot 中不模拟服务类的情况下为 REST 控制器端点编写单元测试

如何在 jQuery $.ajax() 发布请求中向 MVC 控制器方法发送模型

如何在 iOS 中向 UIView 添加第二个 UITabBar(控制器?)

如何使用arduino uno在一个数据包传输中向xbee路由器发送多个命令

Websocket在playframework 2中向所有客户端发送数据