【问题标题】:Eclipse wrongly formats a Spring p-namespace beanEclipse 错误地格式化了 Spring p-namespace bean
【发布时间】:2014-06-08 08:56:39
【问题描述】:

我正在使用 spring-2.5(无法升级,产品依赖),当我使用 p-命名空间符号和一些值表达式时,我注意到 Eclipse 格式化程序的奇怪行为:

如果我像这样使用标准方式(没有 p 命名空间):

<bean id="ldapConfig" class="org.mycompany.project.config.LDAPConfig">
<property name="ldapServer" value="${ldap.server}" />
<property name="ldapPort" value="${ldap.port}" />
<property name="ldapBindDn" value="${ldap.bindDn}" />
<property name="ldapPass" value="${ldap.password}" />
</bean>

然后按组合键:Ctrl-Shift-F 格式(例如缩进)效果很好。

现在,如果我像这样使用p-namespace 表示法:

<bean id="ldapConfig" class="org.mycompany.project.config.LDAPConfig">
<p:ldapServer="${ldap.server}" />
<p:ldapPort="${ldap.port}" />
<p:ldapBindDn="${ldap.bindDn}" />
<p:ldapPass="${ldap.password}"/>
</bean>

当我按下组合键时:Ctrl-Shift-F 格式(例如缩进) 删除了部分代码

<bean id="ldapConfig" class="org.mycompany.project.config.LDAPConfig">
    <p:ldapServer = ldap.server } />
    <p:ldapPort = ldap.port } />
    <p:ldapBindDn = ldap.bindDn } />
    <p:ldapPass = ldap.password } />
</bean>

值表达式(${variable})和 p 命名空间之间是否存在不兼容,或者这只是 XML 格式化部分的 Eclipse 错误?

【问题讨论】:

    标签: eclipse spring code-formatting spring-2.5


    【解决方案1】:

    使用 p-namespace 时 ldapConfig 的 Bean 定义不正确。通过使用 p 命名空间,您可以使用属性作为描述属性值的 bean 元素的一部分,而不是使用嵌套元素。更多详情请见here

    假设您已将命名空间声明为 xmlns:p="http://www.springframework.org/schema/p"

    正确的使用方法是:

        <bean id="ldapConfig" class="org.mycompany.project.config.LDAPConfig" 
            p:ldapServer="${ldap.server}" 
            p:ldapPort="${ldap.port}" 
            p:ldapBindDn="${ldap.bindDn}" 
            p:ldapPass="${ldap.password}">
        </bean>
    

    现在试试 CTRL-SHIFT-F

    【讨论】:

    • 谢谢,这么久我没有使用 xml 配置...我完全忘记了 p-namespace 是属性而不是元素。
    猜你喜欢
    • 2018-01-18
    • 1970-01-01
    • 2017-06-24
    • 2019-10-01
    • 1970-01-01
    • 2015-04-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多