2014-04-23 6 views
0

스프링 - 2.5 (업그레이드 할 수 없음, 제품 종속성)를 사용 중이며 p- 네임 스페이스 표기법 및 일부 값 표현식을 사용하는 경우 Eclipse 형식 기의 이상한 동작을 감지합니다.Eclipse에서 스프링 p 네임 스페이스 빈을 잘못 포맷했습니다.

이 같은 표준 방식 (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를 포맷 (예를 들어, 들여 쓰기가) 아주 잘 작동합니다. 나는 키 조합을 누르면

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

인가 나는이 같은 p-namespace 표기법을 사용하는 경우 지금

값 표현식 (${variable})과 p-namespace간에 비 호환성이 있거나 XML 형식 부분의 Eclipse 버그 일뿐입니다.

답변

1

p-namespace를 사용할 때 ldapConfig의 Bean 정의가 올바르지 않습니다. p-namespace를 사용하면 중첩 요소를 사용하는 대신 특성 값을 설명하는 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

+0

감사합니다. 너무 오래 xml 설정을 사용하지 않았습니다 ... p-namespace를 완전히 잊어 버렸습니다. –