2016-08-03 12 views
0

Ich habe eine Seite mit zwei Formen und möchte Objekt aus dem ersten Formular hinzufügen, wenn zweite eingereicht wird. Grundsätzlich sieht es wie folgt aus: Erste Form:Objekt in Thymelblatt-Form propagieren

<form action="#" method="POST" enctype="multipart/form-data" th:action="@{/foo}" th:object="${prop1}" id="form1"> 
    <input type="file" name="file" class="form-control"/> 
    <input type="text" th:value="${prop1.taskSheetName}" name="taskSheetName"/> 
    <input type="number" th:value="${prop1.descriptionColumnPosition}" name="descriptionColumnPosition"/> 
</form> 

Zweite Form:

<form th:if="${resourceId}" action="#" method=" th:object="${prop2}" id="prop2" th:action="@{/foo/{id}(id=${resourceId})}"> 
    <input type="url" th:value="${prop2.url}" name="url"/> 
    <input type="text" th:value="${prop2.username}" name="username"/> 
    <input type="password" th:value="${prop2.password}" name="password"/> 
</form> 

und Controller-Methoden:

@RequestMapping(value = "/foo", method = POST) 
public String uploadFile(@RequestParam("file") MultipartFile file, final ExcelProperties properties, final Model model) { 
    //some logic here 
} 

@RequestMapping(value = "/process/{id}", method = POST) 
public String processResource(@PathVariable("id") String id, final Prop2 prop2, final Prop1 prop1, final Model model) { 
} 

Und ich brauche die Werte aus dem ersten Formularwerte zu übergeben zweite Methode mit zweiten Formularwerten, übergibt jedoch ein leeres Formularobjekt. Ich habe versucht,

<div th:with="p1=${prop1}"> 

hinzuzufügen, da ich weiß, dass diese Daten in der Seite vorhanden sind, aber es hat nicht geholfen.
Wenn das überhaupt möglich ist oder sollte ich einfach aufgeben und benutzerdefinierte Handler in JavaScript schreiben?

+0

AFAIK, es ist unmöglich, nur HTML zu verwenden, nach https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-form ist etwas JavaScript notwendig. – Danh

Antwort

2

Nach MDN, ist es unmöglich, 1 Eingang in zwei Formen zu befestigen,

Sie müssen einige Arbeit mit JavaScript tun.

Verwandte Themen