⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractlogicaction.java

📁 这是一个用java三层框架做的ISS学员管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      public final List fillBeans(Class objClass, HttpServletRequest request) throws IllegalAccessException, InstantiationException, NoSuchFieldException, ClassCastException {
        if (!(objClass.newInstance() instanceof LoginUser)) {
          throw new ClassCastException(objClass.getName() + " can't cast to " + LoginUser.class.getName());
        }
        Class tmpClass = objClass;
        Field field;
        String fieldName;
        String fieldValues[];
        Map map = new HashMap();
        List list;
        int maxLen = 0;
        int len;
        while (!tmpClass.getName().equals(LoginUser.class.getName())) {
          len = tmpClass.getDeclaredFields().length;
          for (int i = 0; i < len; i++) {
            field = tmpClass.getDeclaredFields()[i];
            fieldName = field.getName();
            fieldValues = request.getParameterValues(fieldName);
            if (fieldValues != null) {
              if (maxLen < fieldValues.length) {
                maxLen = fieldValues.length;
              }
              map.put(fieldName, fieldValues);
            }
          }
          tmpClass = tmpClass.getSuperclass();
        }

        if (maxLen < 1) {
          return null;
        }
        else {
          list = new ArrayList();
          for (int i = 0; i < maxLen; i++) {
            tmpClass = objClass;
            Object objInstance = tmpClass.newInstance();
            while (!tmpClass.getName().equals(LoginUser.class.getName())) {
              len = tmpClass.getDeclaredFields().length;
              for (int j = 0; j < len; j++) {
                field = tmpClass.getDeclaredFields()[j];
                fieldName = field.getName();
                fieldValues = (String[]) map.get(fieldName);
                if (fieldValues != null && fieldValues.length >= i + 1) {
                  setFieldValue(field, objInstance, fieldValues[i]);
                }
              }
              tmpClass = tmpClass.getSuperclass();
            }
            addLoginUserInfo(tmpClass, objInstance, request);
            addContextInfo(objInstance, request);
            list.add(objInstance);
          }
          return list;
        }
      }

      /**
       * 将请求对象中提交过来的数据封装在List中(从表),同时将登录用户信息封装到对象中
       *
       * @param objClass bean的类
       * @return List List对象
       * @throws IllegalAccessException
       * @throws InstantiationException
       * @throws NoSuchFieldException
       * @throws ClassCastException
       */
      public final List fillBeans(Class objClass) throws IllegalAccessException, InstantiationException, NoSuchFieldException, ClassCastException {
        return fillBeans(objClass, this.request);
      }

      /**
       * 将请求对象中提交过来的数据封装在List中(从表),同时将登录用户信息封装到对象中
       *
       * @param className bean的类名
       * @param request   请求对象
       * @return List List对象
       * @throws IllegalAccessException
       * @throws InstantiationException
       * @throws NoSuchFieldException
       * @throws ClassCastException
       * @throws ClassNotFoundException
       */
      public final List fillBeans(String className, HttpServletRequest request) throws IllegalAccessException, NoSuchFieldException, InstantiationException, ClassCastException, ClassNotFoundException {
        return fillBeans(Class.forName(className), request);
      }

      /**
       * 将请求对象中提交过来的数据封装在List中(从表),同时将登录用户信息封装到对象中
       *
       * @param className bean的类名
       * @return List List对象
       * @throws IllegalAccessException
       * @throws InstantiationException
       * @throws NoSuchFieldException
       * @throws ClassCastException
       * @throws ClassNotFoundException
       */
      public final List fillBeans(String className) throws IllegalAccessException, NoSuchFieldException, InstantiationException, ClassCastException, ClassNotFoundException {
        return fillBeans(Class.forName(className), this.request);
      }

    /**
     * 将数据填充到指定对象方法
     *
     * @param objInstance
     *            指定对象
     * @param field
     *            字段
     * @param value
     *            数据
     * @throws IllegalAccessException
     */
    private void setFieldValue(Field field, Object objInstance, String value)
            throws IllegalAccessException {
        String fieldType = field.getType().getName();// 取字段的数据类型
        field.setAccessible(true);
        try {
            if (fieldType.equals("java.lang.String")) {
                field.set(objInstance, value);
            } else if (fieldType.equals("java.lang.Integer")
                    || fieldType.equals("int")) {
                field.set(objInstance, Integer.valueOf(value));
            } else if (fieldType.equals("java.lang.Long")
                    || fieldType.equals("long")) {
                field.set(objInstance, Long.valueOf(value));
            } else if (fieldType.equals("java.lang.Float")
                    || fieldType.equals("float")) {
                field.set(objInstance, Float.valueOf(value));
            } else if (fieldType.equals("java.lang.Double")
                    || fieldType.equals("double")) {
                field.set(objInstance, Double.valueOf(value));
            } else if (fieldType.equals("java.util.Date")) {
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                formatter.setLenient(false);
                field.set(objInstance, formatter.parse(value));
            } else if (fieldType.equals("java.sql.Date")) {
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
                formatter.setLenient(false);
                Date date = formatter.parse(value);
                field.set(objInstance, new java.sql.Date(date.getTime()));
            } else if (fieldType.equals("java.lang.Boolean")
                    || fieldType.equals("boolean")) {
                field.set(objInstance, Boolean.valueOf(value));
            } else if (fieldType.equals("java.lang.Byte")
                    || fieldType.equals("byte")) {
                field.set(objInstance, Byte.valueOf(value));
            } else if (fieldType.equals("java.lang.Short")
                    || fieldType.equals("short")) {
                field.set(objInstance, Short.valueOf(value));
            }
        } catch (NumberFormatException ex) {
//            field.set(objInstance, null);	当使用简单数据类型会抛出异常
        } catch (ParseException e) {
            field.set(objInstance, null);
        } catch (Exception e) {
            field.set(objInstance, null);
        }
    }

    /**
     * 设置提交标记, 用在添加初始化的Action中, 设置属性到session
     */
    public final void setFlag(HttpServletRequest request) {
        HttpSession session = getSession(request);
        session.setAttribute(SESSIONID_SAVE_KEY, StringUtil.getRandomChar());
    }

    /**
     * 设置提交标记, 用在添加初始化的Action中, 设置属性到session
     */

    public final void setFlag() {
        setFlag(this.request);
    }

    /**
     * 判断提交标记
     *
     * @return boolean: true从表单提交, false刷新提交
     */
    public final boolean isFlag(HttpServletRequest request) {
        HttpSession session = getSession(request);
        String sessionID_A = (String) session.getAttribute(SESSIONID_SAVE_KEY);
        String sessionID_B = request.getParameter(SESSIONID_SAVE_KEY);
        if (sessionID_A == null)
            return false;
        if (sessionID_B == null)
            return false;
        return sessionID_A.equals(sessionID_B);
    }

    /**
     * 判断提交标记
     *
     * @return boolean: true从表单提交, false刷新提交
     */
    public final boolean isFlag() {
        return isFlag(this.request);
    }

    /**
     * 数据提交后清除标记, 将添加初始化时在session设置的sessionID属性清空,
     */
    public final void resetFlag(HttpServletRequest request) {
        HttpSession session = getSession(request);
        session.removeAttribute(SESSIONID_SAVE_KEY);
    }

    /**
     * 数据提交后清除标记, 将添加初始化时在session设置的sessionID属性清空,
     */
    public final void resetFlag() {
        resetFlag(this.request);
    }

    public final List getCheckFlagMethod() {
        return checkFlagMethod;
    }

    public final void setCheckFlagMethod(List checkFlagMethod) {
        this.checkFlagMethod = checkFlagMethod;
    }

    public final List getMountFlagMethod() {
        return mountFlagMethod;
    }

    public final void setMountFlagMethod(List mountFlagMethod) {
        this.mountFlagMethod = mountFlagMethod;
    }

    public final String getRepeatPostReturn() {
        return repeatPostReturn;
    }

    public final void setRepeatPostReturn(String repeatPostReturn) {
        this.repeatPostReturn = repeatPostReturn;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -