【发布时间】:2015-07-14 05:21:08
【问题描述】:
package com.dev.web.Controller;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dev.web.Dao.UserDao;
import com.dev.web.Model.User;
public class UserControll extends HttpServlet
{
private static final long serialVersionUID = 1L;
private static String INSERT_OR_EDIT = "/user.jsp";
private static String LIST_USER = "/listEmp.jsp";
private UserDao dao;
public UserControll() {
super();
UserDao dao = new UserDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String forward="";
String action = request.getParameter("action");
if (action.equalsIgnoreCase("delete")){
int Employee_Id= Integer.parseInt(request.getParameter("Employee_Id"));
dao.deleteUser(Employee_Id);
forward = LIST_USER;
request.setAttribute("users", dao.getAllUsers());
} else if (action.equalsIgnoreCase("edit")){
forward = INSERT_OR_EDIT;
int Employee_Id = Integer.parseInt(request.getParameter("empId"));
User user = dao.getUserById(Employee_Id);
request.setAttribute("user", user);
} else if (action.equalsIgnoreCase("listUser")){
forward = LIST_USER;
request.setAttribute("Employee", dao.getAllUsers());
} else {
forward = INSERT_OR_EDIT;
}
RequestDispatcher view = request.getRequestDispatcher(forward);
view.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = new User();
user.setEmployee_Name(request.getParameter("empname"));
user.setSalary(request.getParameter("empsalary"));// here is my error..i declared salary is double
try {
Date dob = new SimpleDateFormat("MM/dd/yyyy").parse(request.getParameter("empdob"));
user.setDob(dob);
} catch (ParseException e) {
e.printStackTrace();
}
user.setActive(request.getParameter("empactive"));// here is my error.. i declared active is boolean
String empid = request.getParameter("empid");
if(empid == null || empid.isEmpty())
{
dao.addUser(user);
}
else
{
user.setEmployee_ID(Integer.par`enter code here`seInt(empid));
dao.updateUser(user);
}
RequestDispatcher view = request.getRequestDispatcher(LIST_USER);
request.setAttribute("users", dao.getAllUsers());
view.forward(request, response);
}
}
【问题讨论】:
-
首先,格式化您的代码以便清楚地理解。
-
发布更多细节,您发布的只是代码,无需解释,请转到帮助页面并参考页面中的“询问”部分。 stackoverflow.com/help
-
我在 set&get 值中声明薪水为双倍,但是当我执行控制语句时它告诉“用户类型中的方法 setSalary(Double) 不适用于参数(字符串)
-
如果您打算在
salary上做任何数学运算,请停止使用double,否则 Richard Pryor 会挪用您所有的零钱。 stackoverflow.com/questions/3730019/… -
不,我没有对薪水进行任何数学计算,只需在其中输入 emp 薪水