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

📄 actioncontextbase.java.svn-base

📁 MVC开源框架
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
    public void saveMessages(ActionMessages messages) {        this.saveActionMessages(MESSAGE_ACTION_MESSAGES_KEY, messages);    }    // ISSUE: do we want to add this to the public API?    /**     * <p> Add the given messages to a cache stored in this Context, under     * key. </p>     *     * @param key      The attribute name for the message cache     * @param messages The ActionMessages to add     */    public void addActionMessages(String key, ActionMessages messages) {        if (messages == null) {            // bad programmer! *slap*            return;        }        // get any existing messages from the request, or make a new one        ActionMessages requestMessages = (ActionMessages) this.get(key);        if (requestMessages == null) {            requestMessages = new ActionMessages();        }        // add incoming messages        requestMessages.add(messages);        // if still empty, just wipe it out from the request        this.remove(key);        // save the messages        this.saveActionMessages(key, requestMessages);    }    // ISSUE: do we want to add this to the public API?    /**     * <p> Save the given ActionMessages into the request scope under the     * given key, clearing the attribute if the messages are empty or null.     * </p>     *     * @param key      The attribute name for the message cache     * @param messages The ActionMessages to add     */    public void saveActionMessages(String key, ActionMessages messages) {        this.saveActionMessages(REQUEST_SCOPE, key, messages);    }    /**     * <p>Save the given <code>messages</code> into the map identified by the     * given <code>scopeId</code> under the given <code>key</code>.</p>     *     * @param scopeId     * @param key     * @param messages     */    public void saveActionMessages(String scopeId, String key,        ActionMessages messages) {        Map scope = getScope(scopeId);        if ((messages == null) || messages.isEmpty()) {            scope.remove(key);            return;        }        scope.put(key, messages);    }    // ISSUE: Should we deprecate this method, since it is misleading?    // Do we need it for backward compatibility?    /**     * <p> Adapt a legacy form of SaveMessages to the ActionContext API by     * storing the ActoinMessages under the default scope.     *     * @param scope    The scope for the internal cache     * @param messages ActionMesssages to cache     */    public void saveMessages(String scope, ActionMessages messages) {        this.saveMessages(messages);    }    // -------------------------------    // Token Processing    // -------------------------------    // ISSUE: Should there be a getToken method?    // Is there a problem trying to map this method from Action    // to ActionContext when we aren't necessarily sure how token    // processing maps into a context with an ill-defined "session"?    // There's no getToken() method, but maybe there should be. *    public void saveToken() {        String token = this.generateToken();        this.put(TRANSACTION_TOKEN_KEY, token);    }    public String generateToken() {        return token.generateToken(getTokenGeneratorId());    }    // ISSUE: The original implementation was based on the HttpSession    // identifier; what would be a way to do that without depending on the    // Servlet API?    // REPLY: uuid's    // http://java.sun.com/products/jini/2.0/doc/specs/api/net/jini/id/Uuid.html    protected String getTokenGeneratorId() {        return "";    }    public boolean isTokenValid() {        return this.isTokenValid(false);    }    public boolean isTokenValid(boolean reset) {        // Retrieve the transaction token from this session, and        // reset it if requested        String saved = (String) this.get(TRANSACTION_TOKEN_KEY);        if (saved == null) {            return false;        }        if (reset) {            this.resetToken();        }        // Retrieve the transaction token included in this request        String token = (String) this.get(TOKEN_KEY);        if (token == null) {            return false;        }        return saved.equals(token);    }    public void resetToken() {        this.remove(TRANSACTION_TOKEN_KEY);    }    // -------------------------------    // Cancel Processing    // -------------------------------    public Boolean getCancelled() {        return (Boolean) this.get(CANCEL_KEY);    }    public void setCancelled(Boolean cancelled) {        this.put(CANCEL_KEY, cancelled);    }    // -------------------------------    // MessageResources Processing    // -------------------------------    public void setMessageResources(MessageResources messageResources) {        this.put(MESSAGE_RESOURCES_KEY, messageResources);    }    public MessageResources getMessageResources() {        return (MessageResources) this.get(MESSAGE_RESOURCES_KEY);    }    public MessageResources getMessageResources(String key) {        return (MessageResources) this.get(key);    }    // -------------------------------    // Locale Processing    // -------------------------------    public void setLocale(Locale locale) {        this.put(LOCALE_KEY, locale);    }    public Locale getLocale() {        return (Locale) this.get(LOCALE_KEY);    }    // -------------------------------    // Convenience Methods: these are not part of the formal ActionContext API,    // but are likely to be commonly useful.    // -------------------------------    /**     * <p> Provide the currently configured commons-logging <code>Log</code>     * instance. </p>     *     * @return Log instance for this context     */    public Log getLogger() {        return this.logger;    }    /**     * <p> Set the commons-logging <code>Log</code> instance which should be     * used to LOG messages. This is initialized at instantiation time but may     * be overridden. Be advised not to set the value to null, as     * <code>ActionContextBase</code> uses the logger for some of its own     * operations. </p>     */    public void setLogger(Log logger) {        this.logger = logger;    }    /**     * <p> Using this <code>ActionContext</code>'s default     * <code>ModuleConfig</code>, return an existing <code>ActionForm</code>     * in the specified scope, or create a new one and add it to the specified     * scope. </p>     *     * @param formName  The name attribute of our ActionForm     * @param scopeName The scope identier (request, session)     * @return The ActionForm for this request     * @throws IllegalAccessException If object cannot be created     * @throws InstantiationException If object cannot be created     * @see this.findOrCreateActionForm(String, String, ModuleConfig)     */    public ActionForm findOrCreateActionForm(String formName, String scopeName)        throws IllegalAccessException, InstantiationException {        return this.findOrCreateActionForm(formName, scopeName,            this.getModuleConfig());    }    /**     * <p> In the context of the given <code>ModuleConfig</code> and this     * <code>ActionContext</code>, look for an existing     * <code>ActionForm</code> in the specified scope. If one is found, return     * it; otherwise, create a new instance, add it to that scope, and then     * return it. </p>     *     * @param formName  The name attribute of our ActionForm     * @param scopeName The scope identier (request, session)     * @return The ActionForm for this request     * @throws IllegalAccessException   If object cannot be created     * @throws InstantiationException   If object cannot be created     * @throws IllegalArgumentException If form config is missing from module     *                                  or scopeName is invalid     */    public ActionForm findOrCreateActionForm(String formName, String scopeName,        ModuleConfig moduleConfig)        throws IllegalAccessException, InstantiationException {        Map scope = this.getScope(scopeName);        ActionForm instance;        FormBeanConfig formBeanConfig =            moduleConfig.findFormBeanConfig(formName);        if (formBeanConfig == null) {            throw new IllegalArgumentException("No form config found under "                + formName + " in module " + moduleConfig.getPrefix());        }        instance = (ActionForm) scope.get(formName);        // ISSUE: Can we recycle the existing instance (if any)?        if (instance != null) {            getLogger().trace("Found an instance in scope " + scopeName                + "; test for reusability");            if (formBeanConfig.canReuse(instance)) {                return instance;            }        }        ActionForm form = formBeanConfig.createActionForm(this);        // ISSUE: Should we check this call to put?        scope.put(formName, form);        return form;    }}

⌨️ 快捷键说明

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