Meine Enum:Enum-Werte je nach Controller Standort in thymeleaf
public enum ADD_OR_EDIT {
ADD("/user/add", "addForm"), EDIT("/user/edit", "editForm");
private String thAction;
private String thObject;
ADD_OR_EDIT(String thAction, String thObject) {
this.thAction = thAction;
this.thObject = thObject;
}
//getters and setters ommited to clear view
}
Meine Controller Linie für bearbeiten
addAttribute("addOrEdit", ADD_OR_EDIT.EDIT);
Meine Controller Linie für add:
addAttribute("addOrEdit", ADD_OR_EDIT.ADD);
Die Frage ist, wie um meine Thymianblattform zu fixieren, um davon abhängig zu werden.
Zum Beispiel:
<form action="#" th:action="(@{addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="${addOrEdit.thObject}"
method="post">
(Dieser funktioniert nicht)
UPDATE:
Das Problem mit dem zweiten Parameter von ENUM ist - thObject.
in add:
model.addAttribute("basicForm", basicForm);
model.addAttribute("addOrEdit",ADD_OR_EDIT.ADD);
in edit:
model.addAttribute("editForm", editForm);
model.addAttribute("addOrEdit",ADD_OR_EDIT.EDIT);
Vielleicht ist der Wert von th: Objekt ist "AddForm" statt AddForm und dies einen Fehler verursachen.
UPDATE2:
Dieses funktioniert:
<form action="#" th:action="(${addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="(${basicForm})"
method="post">
Dieser funktioniert auch:
<form action="#" th:action="(${addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="(${editForm})"
method="post">
So, jetzt der Fall ist, sie von ENUM zu verbinden, wie wir auf thAction tat: Dies funktioniert nicht:
<form action="#" th:action="(${addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="(${{addOrEdit.thObject})"
method="post">
was erwarten Sie mit diesem Formular zu tun? Warum brauchen Sie Formular und nicht einfachen Link zum Beispiel, möchten Sie einige Informationen an den Server senden? – varren
Ich möchte ein Formular zum Bearbeiten und Hinzufügen anstelle von zwei getrennten Formen verwenden, und ich habe zwei getrennte Controller zum Hinzufügen und Bearbeiten – degath
können Sie auch 'editForm' /' basicForm'-Klasse, da, wenn diese 2 verschiedene Klassen sind, ich glaube nicht, dass du in der Lage sein wirst, ein einzelnes Formular für sie zu verwenden – varren