Как правильно получить определяемый пользователем объект, используя Ajax Call to Java Controller? - PullRequest
0 голосов
/ 17 июня 2020

Как правильно получить определяемый пользователем объект с помощью Ajax вызова Java контроллера?

Ниже приведен класс объекта:

@SuppressWarnings("serial")
@Entity
@Table(name = "is_sector")
@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)


public class Sector implements java.io.Serializable {

    private BigDecimal id;
    private String nameEn;
    private String nameAr;
    private Organization org;
    private ApplicationUser manager;
    private BigDecimal userGroupId; //USER_GROUP_ID
    private ApplicationUser specialist;
    private BigDecimal orderId;
    private BigDecimal active;

    /**
     * Instantiates a new sector.
     */
    public Sector() {
    }

    /**
     * Instantiates a new sector.
     *
     * @param id the id
     */
    public Sector(BigDecimal id) {
        this.id = id;
    }

    /**
     * Instantiates a new sector.
     *
     * @param id the id
     * @param nameEn the name en
     * @param nameAr the name ar
     * @param orgId the org id
     */
    public Sector(BigDecimal id, String nameEn, String nameAr,Organization org) {
        super();
        this.id = id;
        this.nameEn = nameEn;
        this.nameAr = nameAr;
        this.org = org;

    }


    /**
     * Instantiates a new sector.
     *
     * @param id the id
     * @param nameEn the name en
     * @param nameAr the name ar
     * @param orgId the org id
     * @param userGroupId the user group id
     */
    public Sector(BigDecimal id, String nameEn, String nameAr,Organization org, BigDecimal userGroupId,ApplicationUser manager) {
        super();
        this.id = id;
        this.nameEn = nameEn;
        this.nameAr = nameAr;
        this.org = org;
        this.userGroupId = userGroupId;
        this.manager = manager;
    }



    /**
     * Gets the user group id.
     *
     * @return the user group id
     */
    @Column(name = "user_group_id", nullable = true, precision = 22, scale = 0)
    public BigDecimal getUserGroupId() {
        return userGroupId;
    }

    /**
     * Sets the user group id.
     *
     * @param userGroupId the new user group id
     */
    public void setUserGroupId(BigDecimal userGroupId) {
        this.userGroupId = userGroupId;
    }

............................................
............................................

Ниже приведен метод контроллера:

    @RequestMapping(value = "/getSectorById/{sectorId}")
    public Sector getSectorById(ModelAndView mav, @PathVariable BigDecimal sectorId) {

        return getSector(sectorId);
    }


    public Sector getSector(BigDecimal sectorId) {

        Sector sector=null;
        try {
            Sector exampleSector = new Sector();
            exampleSector.setId(sectorId);
            sector=lookupService.findSector(exampleSector) ;

        }
        catch (Exception e) {
            e.printStackTrace();
        }

        return sector;
    }

Когда я пытаюсь получить к нему доступ таким образом, он не входит в метод успеха, и я вижу «[object Object]» в ответ на ошибку.

function getSectorById(sectorId){

    var sector=null;
    $.ajax({  
          type: "POST",
          async: false,
          url: contextPath + "/secure/services/getSectorById/"+sectorId,
          contentType: contentTypeJSON,
          success: function(data) {
              alert(data);
              sector= JSON.parse(data);

          },
         error: function(response){
         alert(response); //THIS SHOWS "[object Object]"
         }  

    });

    return sector;
}

Как это сделать верно?

...