0

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

如果我像这样使用标准方式(没有 p-namespace):

<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}

4

1 回答 1

1

使用 p-namespace 时 ldapConfig 的 Bean 定义不正确。通过使用 p-namespace,您可以将属性用作描述属性值的 bean 元素的一部分,而不是使用嵌套元素。更多细节可以在这里找到。

假设您已将命名空间声明为 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

于 2014-04-23T14:04:43.103 回答