JSP - Jede Menge Tasten und Lasten von IF-Anweisungen einreichen
Frage
Meine JSP-Seite viele Submit-Buttons zum Beispiel hat
<input type="submit" name="RemoveCustomer" value="Submit"/>
<input type="submit" name="AddCustomer" value="Submit"/>
und in meinem scriptlet Tag Ich habe so etwas wie diese
if(request.getParameter("addByName") != null && request.getParameter("addByName").length() > 0) {
...
} else {
if(request.getParameter("removeByName") != null && request.getParameter("removeByName").length() > 0) {
...
} else {
...
}
}
Wo addByName und removeByName sind HTML-Textfelder
Klar könnte ich den Knopf RemoveCustomer den Zugriff removeByName klicken und etwas tun, aber wenn der addByName TextField- nicht leer war es ein Kunde hinzufügen würde.
Was ich wissen will, in meinem scriptlet ist, wie kann ich wissen, was Submit-Button gedrückt wurde?
Lösung
You can do request.getParameter("name of submitbutton"). Here name of submit button is RemoveCustomer or AddCustomer.
Andere Tipps
You could put sections in <div>
with class or id that makes clear what has happened.
It sounds to me like your JSP is in need of a good refactoring. If you agree, I have two suggestions:
- Eliminate all scriptlet code and use only JSTL. JSPs are for view only; move all logic out of the page.
- The logic really belongs in controllers on the server side. Have a Front View Controller servlet that accepts all incoming traffic and delegates requests to classes that are written specifically to handle different use cases.
- You might have grown to the point where your app could benefit from an MVC framework like Spring, Wicket, etc. I'd recommend looking into one.