Dưới đây là ý tưởng và đó là cả một số giải pháp theo chương trình và cấu hình. Bạn có thể tạo ActionMapping tùy chỉnh ...
public class YourPOSTRequiredActionMapping extends ActionMapping { }
... và sử dụng trong cấu hình thanh chống cho ánh xạ chỉ POST.
<action path="/your/path" type="YourAction" className="YourPOSTRequiredActionMapping" />
Sau đó, bạn có thể kéo dài tuổi thanh chống RequestProcessor và ghi đè 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;
}
}
Hãy chắc chắn để cấu hình thanh chống cấu hình để sử dụng YourRequestProcessor.
<controller processorClass="YourRequestProcessor" nocache="true" contentType="text/html; charset=UTF-8" locale="false" />
Tôi dựa trên mã số làm việc cũ này nhưng tôi chưa biên dịch mã mẫu ở trên.
Nguồn
2009-06-15 16:44:39
Bạn muốn điều gì xảy ra nếu ai đó gửi GET? – skaffman
Nó chỉ là một ứng dụng thu thập dữ liệu đơn giản và nếu nó được GET, chúng tôi sẽ không lưu dữ liệu vào DB. Tôi chỉ muốn kiểm tra nếu có xml 'cấu hình' cách làm khác hơn là programatically. – Jonathan
Cuối cùng, bạn đã thực hiện điều này như thế nào? – xain