Ich habe eine Spring 3 MVC-Form mit 2 Parametern Ich versuche, an meine Controller-Methode zu senden, und ich bekomme einen 404-Fehler. Das Problem besteht darin, dass das Formular über zwei Schaltflächen zum Senden verfügt, und die Schaltfläche zum Senden, auf die geklickt wird, bestimmt den Wert eines der Parameter. Hier ist meine Form.Spring 3 - Form mit 2 Tasten, Senden von 2 Parametern an die Controller-Methode
<form:form action="/approve/${bulletin.id}" method="post">
<table>
<tr>
<td colspan="2"><b>From:</b> <c:out value="${bulletin.name}" /></td>
</tr>
<tr>
<td colspan="2"><b>Subject:</b> <c:out
value="${bulletin.subject}" /></td>
</tr>
<tr>
<td colspan="2"><b>Date:</b> <c:out value="${bulletin.date}" />
<br></td>
</tr>
<tr>
<td colspan="2"><t:notePrint note="${bulletin.note}" /> <input
type="hidden" name="id" value="${bulletin.id}" /></td>
</tr>
<tr>
<td><input type="submit" name="approve" value="Approve" /></td>
<td><input type="submit" name="deny" value="Deny" /></td>
</tr>
</table>
<br />
</form:form>
Hier ist meine Controller-Form.
@RequestMapping(value = "/approve/{id}", method = RequestMethod.POST)
public String approveBulletin(@RequestParam int id,
@RequestParam(required = false, value = "approve") String approve,
@RequestParam(required = false, value = "deny") String deny, Model model) {
try {
if (approve.equalsIgnoreCase("approve")) {
bulletinDAO.approveBulletin(id);
model.addAttribute("approval",
"Your bulletin has been approved.");
}
if (deny.equalsIgnoreCase("deny")) {
bulletinDAO.denyBulletin(id);
model.addAttribute("approval", "Your bulletin has been denied.");
}
List<Bulletin> bulletins = bulletinDAO.getApprovedBulletins();
model.addAttribute("bulletins", bulletins);
} catch (Exception e) {
System.out.println(e.getMessage());
return "FailurePage";
}
return "ApproveBulletin";
}
Und wie ist es möglich, dies mit MockMVC zu testen? –
Dies wurde nicht mit MockMVC getestet. Dies wurde mit der Anwendung in Tomcat getestet, wie ein Benutzer sie normalerweise verwenden würde. –