Oto i pomysł, który jest zarówno część programową i config rozwiązanie. Można tworzyć niestandardowe ActionMapping ...
public class YourPOSTRequiredActionMapping extends ActionMapping { }
... i wykorzystania w rozporek config dla odwzorowań, które są tylko słupek.
<action path="/your/path" type="YourAction" className="YourPOSTRequiredActionMapping" />
Następnie można rozszerzyć rozpórki RequestProcessor i zastąpić processMapping
public class YourRequestProcessor extends RequestProcessor {
protected ActionMapping processMapping(HttpServletRequest request, HttpServletResponse response, String path) throws IOException {
ActionMapping mapping = super.processMapping(request, response, path);
if (mapping instanceof YourPOSTRequiredActionMapping) {
if (!request.getMethod().equals("POST")) {
mapping = null;
}
}
return mapping;
}
}
Upewnij skonfigurować poprzeczne config do korzystania YourRequestProcessor.
<controller processorClass="YourRequestProcessor" nocache="true" contentType="text/html; charset=UTF-8" locale="false" />
Oparłem to na starym, działającym kodzie, ale nie skompilowałem nawet powyższego przykładowego kodu.
Co by się stało, gdyby ktoś wysłał GET? – skaffman
To tylko prosta aplikacja do przechwytywania danych i jeśli to było GET, nie zapisalibyśmy danych do DB. Chciałem tylko sprawdzić, czy istnieje "konfigurowalny" xml sposób działania poza programowym. – Jonathan
Wreszcie, w jaki sposób wdrożyłeś to? – xain