0

我有一个带有许多 div 的 HTML 文档。每个 div 都有一个唯一的 ID。我已经创建了一个脚本,所以当我将另一个元素拖放到我的一个 div 上时,它应该能够识别它被拖放到哪个 div 上。

  • 例如,如果 div 的 id 是“5”:
  • 在代码中的警报中,我看到“5”。
  • 在我的 doAjaxPost 方法的第二个警报中,我看到“5”
  • 但是当我调用ajax并将categoryId传递给spring mvc方法时,当代码命中setter时,它会更改为包含'234674,5'之类的内容。

任何想法正在发生什么以及如何解决它?

My code:
$(".category").bind("drop", function (event) {
      if (event.preventDefault) event.preventDefault();
      alert($(this).attr("id"));
      doAjaxPost($(this).attr("id"));
      return false;
});

function doAjaxPost(categoryId) {
$.ajax({
        type: "POST",
        url: "/aMethod.html",
        data: "categoryId=" + categoryId,
        success: function(response){
            // we have the response
            },
        error: function(e){
            alert('Error: ' + e);
        }
});
}

这是调用的spring mvc方法:

@RequestMapping(value = "/aMethod", method = RequestMethod.POST)
public @ResponseBody String createEvent(@ModelAttribute(value="Item")
Item item, BindingResult result) {
    itemService.saveItem(item);
    return "A Response";
}

物品对象:

package com.pk.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "item")
public class Item {

@Id
@GeneratedValue
@Column(name = "bi_id")
private int id;

@Column(name = "bi_category_id")
private String categoryId;

@Column(name = "bi_item_name")
private String itemName;

public String getCategoryId() {
    return categoryId;
}
public void setCategoryId(String categoryId) {
    this.categoryId = categoryId;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getItemName() {
    return itemName;
}
public void setItemName(String itemName) {
    this.itemName = itemName;
}


}
4

1 回答 1

0

收到的值很可能是由于重复的参数(具有相同名称的两个参数)。

如果您正在呼叫http://foo.com?idDiv=5服务器将收到 5。如果您正在呼叫http://foo.com?idDiv=5&idDiv=234674服务器将收到 5,234674。

正如@MarkChorley 建议的那样,我会仔细检查实际发送到服务器的内容。

于 2013-07-03T09:58:39.647 回答