2012-02-23 34 views
0

我試圖完成的是使用單一表單,使用Spring和JSP提交多個modelattributes。Spring中的多個modelattributes

有一個我知道該怎麼做,用標籤form:form映射模型。

但是,如果我想在控制器方法中使用註釋@ModelAttribute獲得兩個modelAttributes,我應該怎麼做?它甚至有可能嗎?我知道這並不常見,但我想知道這是否可能。

回答

2

AFAIK,你只能綁定一個窗體與一個單一的對象。如果您有兩個類,那麼您可以創建一個引用其他兩個類的單個類,然後綁定該類。

0

是的,我同意nickdos。 順便說一句,不要忘了把那兩個類名路徑:

例如:

<spring:bind path="user.status"> 
<appfuse:label styleClass="control-label" key="id.user.maritalStatus"/> 
<form:input path="user.status" cssClass="form-control" id="status" /> 
</spring:bind> 
0

只需添加一個嵌套的JSP表單有一個提交按鈕 例子見下文

<form:form method="POST" modelAttribute="applicationGeneralInformation"> 
    <div class="section2"> 
    <h2>General Informaion</h2> 

    <form:input type="hidden" path="id" id="id"/> 
    <label for="app_version">Version</label>: <form:input type="text" id="app_version" path="version"/><br/> 
    <label for="app_func_desc">Description</label>: <form:input type="text" id="app_func_desc" 
                      path="functionalDescription"/><br/> 
    <label for="app_sec_func">Functions</label>: <form:input type="text" id="app_sec_func" 
                     path="securityFunctions"/><br/> 

</div> 
<div class="section2"> 
    <h2>Application Content</h2> 
    <form:form method="POST" modelAttribute="applicationContent"> 
     <div> 
      <h3>CIA Rating</h3> 
      <label for="CIARating">CIA Rating</label>: <form:select type="text" id="CIARating" path="CIARating"> 
      <form:option value="1">1</form:option> 
      <form:option value="2">2</form:option> 
      <form:option value="3">3</form:option> 
      <form:option value="4">4</form:option> 
     </form:select><br/><br/> 
     </div> 
     <div> 
      <h3>Business Continuity and Disaster Recovery</h3> 
      <div> 
       <h4>RTO</h4> 
       <label for="RTO">RTO</label>: <form:select type="text" id="RTO" path="RTO"> 
       <form:option value="1">< 2<sub>Hrs</sub></form:option> 
       <form:option value="2">2<sub>Hrs</sub>-4<sub>Hrs</sub></form:option> 
       <form:option value="3">4<sub>Hrs</sub>-48<sub>Hrs</sub></form:option> 
       <form:option value="4">> 48<sub>Hrs</sub></form:option> 
      </form:select><br/> 
      </div> 
      <div> 
       <h4>RPO</h4> 
       <label for="RPO">RPO</label>: <form:input type="text" id="RPO" path="RPO"/><br/> 
      </div> 
     </div> 
    </form:form> 
    <input type="submit" value="Submit"> 
    </div> 
</form:form>