Time Famine 2024-10-26 23:45 采纳率: 0%
浏览 2
已结题

日历乱码以及无法时间查询,请问应该咋解决?


@WebServlet("/user")
public class UserServlet extends HttpServlet {
    private UserDAO userDAO =new UserDAO();
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String act = request.getParameter("act");
        if (act == null){
            act = "list";//默认展示列表项
        }
        switch (act){
            case "go_edit"://跳转到编辑页面,如果是修改需要回填数据
                goEdit(request,response);
                break;
            case "edit"://执行添加或修改操作
                edit(request,response);
                break;
            case "delete"://删除
                delete(request,response);
                break;
            default:
                list(request,response);
        }
    }
    protected void list (HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException{
        //封装查询条件
        UserCriteria criteria =new UserCriteria();
        //参数提取
        RequestUtil.populate(request,criteria,"yyyy-MM-dd");
        //查条数
        Long totalCount =userDAO.getCount(criteria);
        request.setAttribute("pageInfo",new PageInfo(criteria,totalCount));
        if (totalCount>0){
            //有数据就查询列表
            List<User> userList =userDAO.selectList(criteria);
            request.setAttribute("userList",userList);
        }
        request.getRequestDispatcher(SystemConstants.PAGE_PATH +"user_list.jsp").forward(request,response);
    }
    protected void goEdit (HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Integer id =RequestUtil.getInteger(request,"id");
        if(id !=null){
            User user =userDAO.selectById(id);
            request.setAttribute("user",user);
        }
        request.getRequestDispatcher(SystemConstants.PAGE_PATH+"user_edit.jsp").forward(request,response);
    }
    protected void edit (HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        User user = new User();
        RequestUtil.populate(request,user,"yyyy-MM-dd");
        if (CommonUtil.isEmpty(user.getName())){
            error("姓名不能为空",request,response);
            return;
        }
        if (CommonUtil.isEmpty(user.getUsername())){
            error("用户名不能为空",request,response);
            return;
        }
        int result= 0;
        if (user.getId() == null){
            if(userDAO.getUserByUsername(user.getUsername())!=null){
                error("用户名已存在",request,response);
                return;
            }
            user.setPassword("000000");
            SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            user.setCreatedDate(format.format(new Date()));
            user.setStatus(SystemConstants.STATUS_AVAILABLE);
            result = userDAO.add(user);
        }else {
            result = userDAO.update(user);
        }
        if (result == 1){
            //成功后返回登录
            request.getRequestDispatcher(SystemConstants.PAGE_PATH + "/user?act=list");
        }else {
            error("修改失败,请稍后再试",request,response);
        }
    }
    public void error(String message,HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        request.setAttribute("message",message);
        request.getRequestDispatcher(SystemConstants.PAGE_PATH + "user_edit.jsp").forward(request,response);
    }
    protected void delete (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id =RequestUtil.getInteger(request,"id");
        userDAO.delete(id);
        response.sendRedirect(request.getContextPath()+"user?act=list");
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request,response);
    }
}


```java
public class RequestUtil {
    public static Integer getInteger(HttpServletRequest request,String name){
        String s=request.getParameter(name);
        if (s!=null&&s.trim().length()>0){
            try {
                return Integer.parseInt(s);
            }catch (Exception e){

            }
        }
        return null;
    }

    public static Long getLong(HttpServletRequest request,String name){
        String s=request.getParameter(name);
        if (s!=null && s.trim().length()>0){
            try {
                return Long.parseLong(s);
            }catch (Exception e){

            }
        }
        return null;
    }

    public static Double getDouble(HttpServletRequest request,String name){
        String s=request.getParameter(name);
        if (s!=null && s.trim().length()>0){
            try {
                return Double.parseDouble(s);
            }catch (Exception e){

            }
        }
        return null;
    }

    public static String getString(HttpServletRequest request,String name){
        String s=request.getParameter(name);
        if (s!=null && s.trim().length()>0){
            try {
                return s;
            }catch (Exception e){

            }
        }
        return null;
    }

    public static String getStringWithBlank(HttpServletRequest request,String name){
        return request.getParameter(name);
    }

    public static Date getDate(HttpServletRequest request, String name,String pattern){
        SimpleDateFormat format=new SimpleDateFormat(pattern);
        String s=request.getParameter(name);
        if (s!=null && s.trim().length()>0){
            try {
                return format.parse(s);
            }catch (Exception e){

            }
        }
        return null;
    }

    public static <T> void populate(HttpServletRequest request, T clazz){

            try {
                ConvertUtils.register(new DateConverter(null),Date.class);
                ConvertUtils.register(new LongConverter(null),Long.class);
                ConvertUtils.register(new IntegerConverter(null),Integer.class);
                ConvertUtils.register(new DoubleConverter(null),Double.class);
                ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
                BeanUtils.populate(clazz,request.getParameterMap());
            }catch (IllegalAccessException e){
                e.printStackTrace();
            }catch (InvocationTargetException e){
                e.printStackTrace();
            }


    }

    public static <T> void populate(HttpServletRequest request, T clazz,String datePattern){
        DateConverter converter=new DateConverter();
       converter.setPattern(new String(datePattern));
       ConvertUtils.register(converter,Date.class);
       populate(request,clazz);
    }
}

img

日历乱码以及无法时间查询,请问应该咋解决?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月3日
    • 创建了问题 10月26日