我在我的一個控制器中有doPost()
裏面的以下代碼。該代碼基本上從請求中獲取action
參數,並執行與action的值相同名稱的方法。如何推廣servlet之間的方法調用?
// get the action from the request and then execute the necessary
// action.
String action = request.getParameter("action");
try {
Method method = UserController.class.getDeclaredMethod(action,
new Class[] { HttpServletRequest.class,
HttpServletResponse.class });
try {
method.invoke(this, request, response);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
ErrorHandlingHelper.redirectToErrorPage(response);
e.printStackTrace();
}
現在我想在我所有的控制器中實現這個功能。我試圖將其推廣到helper
類的函數中,但我無法找到正確的方法。
我該如何做到這一點?
當我調用子servlet時,它永遠不會調用父級的doPost。這將如何工作? – 2013-05-09 08:22:20
是什麼讓你這麼想?如果您沒有在ChildServlet中定義doPost()方法,則會執行父級的doPost()。如果你在孩子中有一個doPost()方法 - 只需調用super.doPost() – WeMakeSoftware 2013-05-09 10:28:40