2015-07-03 55 views
0

我使用彈簧休息。從服務器分配值到html並保存

我想顯示一個對象並保存它。

@RequestMapping(value = "/lodgers", method = RequestMethod.POST) 
public LodgerInformation createLodger(@RequestBody @Valid final LodgerInformation lodgerDto) { 
    return lodgerService.save(lodgerDto); 
} 

public class LodgerInformation { 
    private long lodgerId; 
    private String firstName; 
    private String lastName; 
    private List<IdentityCardDto> identityCardDtoList; 
    ... 
} 



public class IdentityCardDto { 
    private long identityCardId; 
    private IdentityCardTypeDto identityCardTypeDto; 
    private String value; 
    ... 
} 

public class IdentityCardTypeDto { 
    private long identityCardTypeId; 
    private String identityCardType; 
    private Date expiration; 
    private boolean hasExpirationDate=false; 
    ... 
} 

在html方面,我需要使用什麼結構名稱? 是否有一些庫,便於過程值分配給HTML組件和反向

獲取答案:

「{」時間戳「:1436292452811,」狀態「:400,」錯誤「:」壞請求「,」異常「:」org.springframework.http.converter.HttpMessageNotReadableException「,」message「:」無法讀取文檔:無法識別的標記'firstName':期待'null','true','false'或NaN \ n在[Source:[email protected];行:1,列:11];嵌套的異常是com.fasterxml.jackson.core.JsonParseException:無法識別的標記'firstName':在[Source:[email protected];期待'null','true','false'或NaN \ n。行:1,柱:11]「‘路徑’:‘/房客’}」

+0

您是否正在查詢這裏發送的xml/json是否被轉換爲LodgerInformation? – Mudassar

+0

序列化表單似乎不能正常工作。 –

回答

1

需要被送到這裏應該是以下格式的輸入

{ 
lodgerId : 1, 
identityCardDtoList: [{ 
         identityCardId: 11, 
         identityCardTypeDto:{ 
          identityCardTypeId: 111, 
          identityCardType: "Node 1.1.1", 
          expiration: 12/12/2015, 
          hasExpirationDate: true 
          } 
         },{ 
         identityCardId: 12, 
         identityCardTypeDto:{ 
          identityCardTypeId: 112, 
          identityCardType: "Node 1.1.2", 
          expiration: 12/12/2015, 
          hasExpirationDate: true 
          } 
        }] 
} 

請讓我知道,如果這是你正在尋找

+0

它更多的是我需要命名我的html組件。當我收到來自ajax調用的響應時,是否有能夠對組件進行賦值的庫......或者我需要類似$(「#lodgerFirstName」)。val(data.firstName); –

+0

那麼你是否正在查詢如何在視圖上發送數據後如何爲查看頁面賦值 – Mudassar

+0

就像我說的,我的查詢有兩點。 1.我需要使用組件名稱來分配值到服務器的值。還有一種方法可以將我從服務器獲得的值分配給組件,或者我需要爲每個字段指定賦值。 2.如何獲取表單值,構建我的json查詢並將其傳遞給url。也許有一些圖書館採取形式價值和建立JSON? –

1

什麼形式會是這個樣子

 <form id="newPersonForm"> 
      <label for="nameInput">Name: </label> 
      <input type="text" name="name" id="nameInput" /> 
      <br/> 
        
      <label for="ageInput">Age: </label> 
      <input type="text" name="age" id="ageInput" /> 
      <br/> 
      <input type="submit" value="Save Person" /><br/><br/> 
      <div id="personFormResponse" class="green"> </div> 
    </form> 

jQuery的調用代碼看起來像這樣

$(document).ready(function() { 
// Save Person AJAX Form Submit 
     $('#newPersonForm').submit(function(e) { 
     // will pass the form data using the jQuery serialize function 
     $.post('${pageContext.request.contextPath}/api/person', $(this).serialize(), function(response) { 
      $('#personFormResponse').text(response); 
     }); 
     }); 

    }); 

控制器代碼

@Controller 
@RequestMapping("api") 
public class PersonController { 

    PersonService personService; 
// handles person form submit 
@RequestMapping(value="person", method=RequestMethod.POST) 
@ResponseBody 
public String savePerson(@RequestBody Person person) { 
    personService.save(person); 
    return "Saved person: " + person.toString(); 
} 

人對象必須被轉換成JSON。由於Spring的HTTP消息轉換器支持,您不需要手動執行此轉換。由於Jackson 2位於類路徑中,因此會自動選擇Spring的MappingJackson2HttpMessageConverter將Greeting實例轉換爲JSON。 發送到控制器的Person對象將由jquery映射創建Person對象的幫助@RequestBody

+0

而不是讓春天做轉換,有沒有辦法在js做轉換? –

+0

當你有很多嵌套的對象時,如果一些具有相同的名稱字段會發生什麼?結構是如何自動創建的? –