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

📄 dwrnamespacehandler.java

📁 反向的AJAX。最大的特性是我们成为反向的Ajax。DWR1.x允许你用javascript异步的访问java代码。DWR2.0在这上允许你建立异步java访问javascript代码。 反向的Aj
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            for (Iterator i = signatureElements.iterator(); i.hasNext();)            {                Element signatureElement = (Element) i.next();                decorate(signatureElement, new BeanDefinitionHolder(beanDefinition, DEFAULT_SPRING_CONFIGURATOR_ID), parserContext);            }            return beanDefinition;        }    }    protected class ControllerBeanDefinitionParser implements BeanDefinitionParser    {        public BeanDefinition parse(Element element, ParserContext parserContext)        {            BeanDefinitionBuilder dwrController = BeanDefinitionBuilder.rootBeanDefinition(DwrController.class);            List configurators = new ManagedList();            configurators.add(new RuntimeBeanReference(DEFAULT_SPRING_CONFIGURATOR_ID));            dwrController.addPropertyValue("configurators", configurators);            String debug = element.getAttribute("debug");            if (StringUtils.hasText(debug))            {                dwrController.addPropertyValue("debug", debug);            }            String beanName = element.getAttribute(BeanDefinitionParserDelegate.ID_ATTRIBUTE);            String nameAttr = element.getAttribute(BeanDefinitionParserDelegate.NAME_ATTRIBUTE);            String[] aliases = null;            if (!StringUtils.hasText(beanName))            {                beanName = element.getAttribute("name");            }            else            {                String aliasName = element.getAttribute("name");                if (StringUtils.hasText(aliasName))                {                    aliases = StringUtils.tokenizeToStringArray(nameAttr, BeanDefinitionParserDelegate.BEAN_NAME_DELIMITERS);                }            }            parseControllerParameters(dwrController, element);                        BeanDefinitionHolder holder = new BeanDefinitionHolder(dwrController.getBeanDefinition(), beanName, aliases);            BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry());            return dwrController.getBeanDefinition();        }                protected void parseControllerParameters(BeanDefinitionBuilder dwrControllerDefinition, Element parent)        {            NodeList children = parent.getChildNodes();            Map params = new HashMap();            for (int i = 0; i < children.getLength(); i++)            {                Node node = children.item(i);                if (node.getNodeType() == Node.TEXT_NODE || node.getNodeType() == Node.COMMENT_NODE)                {                    continue;                }                Element child = (Element) node;                if (child.getNodeName().equals("dwr:config-param"))                {                    String paramName = child.getAttribute("name");                    String value = child.getAttribute("value");                    params.put(paramName, value);                }                else                {                    throw new RuntimeException("an unknown dwr:controller sub node was found: " + node.getNodeName());                }            }            dwrControllerDefinition.addPropertyValue("configParams", params);        }    }    protected class RemoteBeanDefinitionDecorator implements BeanDefinitionDecorator    {        /**         * Registers an &lt;dwr:remote ... /&gt; element.         */        public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext)        {            Element element = (Element) node;            String javascript = element.getAttribute("javascript");            BeanDefinitionBuilder beanCreator = BeanDefinitionBuilder.rootBeanDefinition(BeanCreator.class);            try            {                String beanClassName = resolveBeanClassname(definition.getBeanDefinition(), parserContext.getRegistry());                if (beanClassName == null)                 {                    throw new FatalBeanException("Unabled to find type for beanName '" + definition.getBeanName() +                                                  "'. " + "Check your bean has a correctly configured parent or provide a class for " +                                                  " the bean definition");                }                beanCreator.addPropertyValue("beanClass", ClassUtils.forName(beanClassName));            }            catch (ClassNotFoundException e)            {                throw new FatalBeanException("Unable to create DWR bean creator for '" + definition.getBeanName() + "'.", e);            }            String name = definition.getBeanName();            if (name.startsWith("scopedTarget."))            {                name = name.substring(name.indexOf(".") + 1);            }            beanCreator.addPropertyValue("beanId", name);            beanCreator.addPropertyValue("javascript", javascript);            BeanDefinitionBuilder creatorConfig = BeanDefinitionBuilder.rootBeanDefinition(CreatorConfig.class);            creatorConfig.addPropertyValue("creator", beanCreator.getBeanDefinition());                        registerCreator(parserContext.getRegistry(), javascript, creatorConfig, new HashMap(), node.getChildNodes());            return definition;        }                /**         *  Try getting the beanClassName from the definition and if that fails try to get it from          *  the parent (and even parent BeanFactory if we have to).         *           *  @param definition          *  @param registry         *  @return class name or null if not found         */        private String resolveBeanClassname(BeanDefinition definition, BeanDefinitionRegistry registry)         {            String beanClassName = definition.getBeanClassName();                if (!StringUtils.hasText(beanClassName))             {                while (definition instanceof ChildBeanDefinition )                {                    String parentName = ((ChildBeanDefinition)definition).getParentName();                                        BeanDefinition parentDefinition = findParentDefinition(parentName, registry);                    if (parentDefinition == null)                    {                        if (log.isDebugEnabled())                         {                            log.debug("No parent bean named '" + parentName + "' could be found in the " +                                       "hierarchy of BeanFactorys. Check you've defined a bean called '" + parentName + "'");                        }                        break;                    }                    beanClassName = parentDefinition.getBeanClassName();                    if (StringUtils.hasText(beanClassName ))                    {                        // found the class name we were looking for                        break;                    }                    definition = parentDefinition;                }            }                       return beanClassName;        }                private BeanDefinition findParentDefinition(String parentName, BeanDefinitionRegistry registry)        {               if (registry != null)             {                if (registry.containsBeanDefinition(parentName))                 {                    return registry.getBeanDefinition(parentName);                }                 else if (registry instanceof HierarchicalBeanFactory)                 {                    // Try to get parent definition from the parent BeanFactory. This could return null                    BeanFactory parentBeanFactory = ((HierarchicalBeanFactory)registry).getParentBeanFactory();                    return findParentDefinition(parentName, (BeanDefinitionRegistry)parentBeanFactory);                }             }                        // we've exhausted all possibilities                    return null;        }    }    protected class ConverterBeanDefinitionDecorator implements BeanDefinitionDecorator    {        public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext)        {            Element element = (Element) node;            String type = element.getAttribute("type");            String className = element.getAttribute("class");            String javascriptClassName = element.getAttribute("javascript");                        BeanDefinitionRegistry registry = parserContext.getRegistry();            ConverterConfig converterConfig = new ConverterConfig();            converterConfig.setType(type);            converterConfig.setJavascriptClassName(javascriptClassName);            parseConverterSettings(converterConfig, element);            lookupConverters(registry).put(className, converterConfig);            return definition;        }    }    protected void parseConverterSettings(ConverterConfig converterConfig, Element parent)    {        NodeList children = parent.getChildNodes();        // check to see if there are any nested elements here        for (int i = 0; i < children.getLength(); i++)        {            Node node = children.item(i);            if (node.getNodeType() == Node.TEXT_NODE || node.getNodeType() == Node.COMMENT_NODE)            {                continue;            }            Element child = (Element) node;            if (child.getNodeName().equals("dwr:include"))            {                converterConfig.addInclude(child.getAttribute("method"));            }            else if (child.getNodeName().equals("dwr:exclude"))            {                converterConfig.addExclude(child.getAttribute("method"));            }            /* TODO Why is this only a property of ObjectConverter?             else if (child.getNodeName().equals("dwr:force"))             {             converterConfig.setForce(Boolean.parseBoolean(child.getAttribute("value")));             }             */            else            {                throw new RuntimeException("an unknown dwr:remote sub node was found: " + node.getNodeName());            }

⌨️ 快捷键说明

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