protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String forward="";
String action = request.getParameter("action");
if (action.equalsIgnoreCase("delete")){
int userId = Integer.parseInt(request.getParameter("userId"));
dao.deleteUser(userId);
forward = LIST_USER;
request.setAttribute("users", dao.getAllUsers());
} else if (action.equalsIgnoreCase("edit")){
forward = INSERT_OR_EDIT;
int userId = Integer.parseInt(request.getParameter("userId"));
User user = dao.getUserById(userId);
request.setAttribute("user", user);
} else if (action.equalsIgnoreCase("listUser")){
forward = LIST_USER;
request.setAttribute("users", dao.getAllUsers());
} else {
forward = INSERT_OR_EDIT;
}
RequestDispatcher view = request.getRequestDispatcher(forward);
view.forward(request, response);
}}
6213 次
4 に答える
23
に変更すると、定数部分を主なオブジェクトとして作成し、変数部分が等しいかどうかを確認できます
"delete".equalsIgnoreCase(action)
于 2013-05-23T11:25:42.843 に答える
2
request.getParameter("action");
ここではnullです
だから使う
if (action!=null && action.equalsIgnoreCase("delete")){
int userId = Integer.parseInt(request.getParameter("userId"));
dao.deleteUser(userId);
forward = LIST_USER;
request.setAttribute("users", dao.getAllUsers());
} else if (action!=null && action.equalsIgnoreCase("edit")){
forward = INSERT_OR_EDIT;
int userId = Integer.parseInt(request.getParameter("userId"));
User user = dao.getUserById(userId);
request.setAttribute("user", user);
} else if (action!=null && action.equalsIgnoreCase("listUser")){
forward = LIST_USER;
request.setAttribute("users", dao.getAllUsers());
} else {
forward = INSERT_OR_EDIT;
}
于 2013-05-23T11:25:43.947 に答える
1
私はArun P Johnyのソリューションを好むかもしれませんが、このヘルパーメソッドも便利かもしれません:
public String getParameter(HttpServletRequest request, String parameterName, String defaultvalue) {
String result = request.getParameter(parameterName);
return (result != null) ? result : defaultValue;
}
そして電話する
String action = getParameter(request, "action", "");
于 2013-05-23T11:39:36.633 に答える
-1
使ってみて
String action = request.getParameter("action")+"";
したがって、他のすべてのチェックでは NPE が得られません。
于 2013-05-23T11:27:14.457 に答える