簡體   English   中英

Spring MVC Bean轉換

[英]Spring MVC Bean conversion

我有一個POJO,我在JSP表單中成功使用。 我可以顯示表單,並可以將結果發回。 這是modelAttribute bean

public class FooAdminWebDTO implements Serializable {

private static final long serialVersionUID = -5296961362891142744L;

private List<FooDTO> FooDTOList;
private String success = "success"; //..etc

這是我的JSP頁面之外的一個:

    <form:form method="post" class="form-horizontal" id="viewForm"
           action="${pageContext.request.contextPath}/FooAdmin/saveFoo" modelAttribute="FooAdminWebDTO">

        <div class="form-group">
        <form:label class="col-sm-2" path="FooDTO" for="FooDTO" required="true">XYZ:</form:label>
        <form:input class="col-sm-5" path="FooDTO" id="FooDTO" type="number" value="${FooAdminWebDTO.FooDTO.FooXYZ}" required="true"/>
    </div>

    <div class="form-group">
        <form:label class="col-sm-2" path="success" for="success" required="true">Success:</form:label>
        <form:input class="col-sm-5" path="success" id="success" type="text" value="SUCCESS" required="true"/>
    </div>

問題出在我的POST區域。 我成功地使用了正確的控制器方法:

    @RequestMapping(value = "/FooAdmin/saveFoo", method = RequestMethod.POST)
public ModelAndView saveFooByID(@ModelAttribute("FooAdminWebDTO") FooAdminWebDTO s, BindingResult bindingResult) {
    return new ModelAndView();
}

但是,正如預期的那樣,我只看到Spring填充成功字段的內容。 成功字段是一個簡單的字符串。 (所有其他復雜字段為空)。

這是對象:FooDTO:

@JavascriptMappable
public class FooDTO implements Serializable {

private static final long serialVersionUID = -5974170234812308892L;
private String FooDescription;
private int additionQuantity;

等等..

請有人指導我如何做到這一點? 我使用XML進行配置,所以任何涉及配置的答案,請記住這一點。 我有很深的嵌套對象,需要一種方法將我的對象綁定到傳入的POST對象。

謝謝。

表單中路徑的值:input應映射到要在對象中填充的屬性。

例如,對於ProductAdminWebDTO.ProductDTO.productPartNumber的輸入標記,路徑應該類似於path="productDTO.productPartNumber"

您可以在http://docs.spring.io/spring/docs/current/spring-framework-reference/html/view.html#view-jsp-formtaglib-formtag表單綁定的簡單說明中找到更多信息。 在您的情況下,您需要訪問嵌套對象,就像顯示時一樣,使用.

回顧一下HttpMessageConverter負責將HTTP請求消息轉換為一個相關的java對象。 在我們的例子中,想要在發出請求時將JSON轉換為java對象。 Spring將專門尋找與mime類型相關聯的HttpMessageConverter來執行轉換。

您必須將jackson依賴項添加到項目中,並在spring中注冊為消息轉換器。

檢查一下: Spring 3.0使用jackson消息轉換器進行JSON響應

發現錯誤。 這是一個JQuery

     $('#viewForm input').attr("disabled", true);
    $('#viewForm select').attr("disabled", true);

我在JSP的其他地方使用它來使字段不可編輯。 我忘了重新啟用表單,這就是為什么它沒有正確提交。 感謝那些試圖幫助的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM