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

📄 serviceeventhandler.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                        if (fileName.indexOf('\\') > -1 || fileName.indexOf('/') > -1) {                            // get just the file name IE and other browsers also pass in the local path                            int lastIndex = fileName.lastIndexOf('\\');                            if (lastIndex == -1) {                                lastIndex = fileName.lastIndexOf('/');                            }                            if (lastIndex > -1) {                                fileName = fileName.substring(lastIndex + 1);                            }                        }                        multiPartMap.put(fieldName, new ByteWrapper(item.get()));                        multiPartMap.put("_" + fieldName + "_size", new Long(item.getSize()));                        multiPartMap.put("_" + fieldName + "_fileName", fileName);                        multiPartMap.put("_" + fieldName + "_contentType", item.getContentType());                    }                }            }        }        // store the multi-part map as an attribute so we can access the parameters        request.setAttribute("multiPartMap", multiPartMap);        // we have a service and the model; build the context        Map serviceContext = new HashMap();        Iterator modelParmInIter = model.getInModelParamList().iterator();        while (modelParmInIter.hasNext()) {            ModelParam modelParam = (ModelParam) modelParmInIter.next();            String name = modelParam.name;            // don't include userLogin, that's taken care of below            if ("userLogin".equals(name)) continue;            // don't include locale, that is also taken care of below            if ("locale".equals(name)) continue;            Object value = null;            if (modelParam.stringMapPrefix != null && modelParam.stringMapPrefix.length() > 0) {                Map paramMap = UtilHttp.makeParamMapWithPrefix(request, multiPartMap, modelParam.stringMapPrefix, null);                value = paramMap;                if (Debug.verboseOn()) Debug.log("Set [" + modelParam.name + "]: " + paramMap, module);            } else if (modelParam.stringListSuffix != null && modelParam.stringListSuffix.length() > 0) {                List paramList = UtilHttp.makeParamListWithSuffix(request, multiPartMap, modelParam.stringListSuffix, null);                value = paramList;            } else {                // first check the multi-part map                value = multiPartMap.get(name);                // check the request parameters                if (UtilValidate.isEmpty(value)) {                    // normal parameter data, which can either be a single value or an array of values                    String[] paramArr = request.getParameterValues(name);                    if (paramArr != null) {                        if (paramArr.length > 1) {                            value = Arrays.asList(paramArr);                        } else {                            value = paramArr[0];                        }                    }                    // make any composite parameter data (e.g., from a set of parameters {name_c_date, name_c_hour, name_c_minutes})                    if (value == null) {                        value = UtilHttp.makeParamValueFromComposite(request, name, locale);                    }                }                // next check attributes                if (UtilValidate.isEmpty(value)) {                    Object tempVal = request.getAttribute(name);                    if (tempVal != null) {                        value = tempVal;                    }                }                // then session                if (UtilValidate.isEmpty(value)) {                    Object tempVal = request.getSession().getAttribute(name);                    if (tempVal != null) {                        value = tempVal;                    }                }                // no field found                if (value == null) {                    //still null, give up for this one                    continue;                }                if (value instanceof String && ((String) value).length() == 0) {                    // interpreting empty fields as null values for each in back end handling...                    value = null;                }            }            // set even if null so that values will get nulled in the db later on            serviceContext.put(name, value);        }        // get only the parameters for this service - converted to proper type        // TODO: pass in a list for error messages, like could not convert type or not a proper X, return immediately with messages if there are any        List errorMessages = new LinkedList();        serviceContext = model.makeValid(serviceContext, ModelService.IN_PARAM, true, errorMessages, locale);        if (errorMessages.size() > 0) {            // uh-oh, had some problems...            request.setAttribute("_ERROR_MESSAGE_LIST_", errorMessages);            return "error";        }        // include the UserLogin value object        if (userLogin != null) {            serviceContext.put("userLogin", userLogin);        }        // include the Locale object        if (locale != null) {            serviceContext.put("locale", locale);        }        // invoke the service        Map result = null;        try {            if (ASYNC.equalsIgnoreCase(mode)) {                dispatcher.runAsync(serviceName, serviceContext);            } else {                result = dispatcher.runSync(serviceName, serviceContext);            }        } catch (ServiceAuthException e) {            // not logging since the service engine already did            request.setAttribute("_ERROR_MESSAGE_", e.getNonNestedMessage());            return "error";        } catch (ServiceValidationException e) {            // not logging since the service engine already did            request.setAttribute("serviceValidationException", e);            if (e.getMessageList() != null) {                request.setAttribute("_ERROR_MESSAGE_LIST_", e.getMessageList());            } else {                request.setAttribute("_ERROR_MESSAGE_", e.getNonNestedMessage());            }            return "error";        } catch (GenericServiceException e) {            Debug.logError(e, "Service invocation error", module);            throw new EventHandlerException("Service invocation error", e.getNested());        }        String responseString = null;        if (result == null) {            responseString = ModelService.RESPOND_SUCCESS;        } else {            if (!result.containsKey(ModelService.RESPONSE_MESSAGE)) {                responseString = ModelService.RESPOND_SUCCESS;            } else {                responseString = (String) result.get(ModelService.RESPONSE_MESSAGE);            }            // set the messages in the request; this will be picked up by messages.ftl and displayed            request.setAttribute("_ERROR_MESSAGE_LIST_", result.get(ModelService.ERROR_MESSAGE_LIST));            request.setAttribute("_ERROR_MESSAGE_MAP_", result.get(ModelService.ERROR_MESSAGE_MAP));            request.setAttribute("_ERROR_MESSAGE_", result.get(ModelService.ERROR_MESSAGE));            request.setAttribute("_EVENT_MESSAGE_LIST_", result.get(ModelService.SUCCESS_MESSAGE_LIST));            request.setAttribute("_EVENT_MESSAGE_", result.get(ModelService.SUCCESS_MESSAGE));            // set the results in the request            Iterator rmei = result.entrySet().iterator();            while (rmei.hasNext()) {                Map.Entry rme = (Map.Entry) rmei.next();                String resultKey = (String) rme.getKey();                Object resultValue = rme.getValue();                if (resultKey != null && !ModelService.RESPONSE_MESSAGE.equals(resultKey) && !ModelService.ERROR_MESSAGE.equals(resultKey) &&                        !ModelService.ERROR_MESSAGE_LIST.equals(resultKey) && !ModelService.ERROR_MESSAGE_MAP.equals(resultKey) &&                        !ModelService.SUCCESS_MESSAGE.equals(resultKey) && !ModelService.SUCCESS_MESSAGE_LIST.equals(resultKey)) {                    request.setAttribute(resultKey, resultValue);                }            }        }        if (Debug.verboseOn()) Debug.logVerbose("[Event Return]: " + responseString, module);        return responseString;    }}

⌨️ 快捷键说明

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