2012-03-05 3 views
3

우리는 grails 2.0.1 (2.0.0부터)로 업데이트했기 때문에 bean 필드를 통해 보여지는 모든 bean은의 첫 번째 속성으로 잘못 표시됩니다. 그 "withBean"필드. 아래에 게시 한 예에서 [firstName, lastName, dateOfBirth, contactNumber]는 모두 'lastName'으로 표시됩니다 (3 번째 속성 (dateOfBirth)이 날짜가 될 것이므로 잘못된 메시지가 아닙니다. 선택기, 텍스트 필드가 아님).잘못된 bean 속성을 보여주는 Grails "bean : input"(빈 필드들)

잠재적 인 모든 잠재적 해결 방법이나 제안 사항이 있습니까?

(plugins.bean 필드 = 1.0 RC3)

enter image description here

+0

이 제안에 대해 고마워하지 않겠지 만, 'bean-fields'의 후속 인'form-fields' 플러그인으로 마이그레이션하는 것이 좋습니다. https://github.com/delight/grails-form-fields –

+0

이것이 고려되었지만, 우리는이를 사용하기 위해 여러 가지 양식을 변경하는 것을 원하지 않을 수 있습니다. – Noxville

+0

이 버그에 대한 JIRA 티켓을 여는 것이 좋습니다. 그러나 경험에 의하면, 빈 필드에 대해보고 된 버그는 테스트 케이스가 제공 될 때조차 무시되는 경향이 있는데, 이는 양식 필드를 사용하는 것을 선호하는 또 다른 이유입니다. –

답변

0

Code은 저도 같은 문제가 발생하고, 해결 방법이 있습니다.

나는 bean_tag를 호출하기 전에 렌더링에 포함 된 /shared/_beanfieldConfig.gsp이라는 gsp 템플릿으로 추출 된 beanfield 템플릿을 사용자 정의했습니다. 예 :

<g:render template="/shared/beanFieldConfig" /> 
<bean:withBean beanName='command'> 
<bean:input property='username' /> 

이것은 1.3.7에서 훌륭하게 작동하며 뷰간에 beanFieldConfig를 공유 할 수 있음을 의미합니다.

2.0.3으로 업그레이드 할 때 원래 질문과 동일한 문제가 발생했습니다. 각보기에서 내 _beanFieldConfig의 콘텐츠를 인라이닝하여이 문제를 해결할 수 있음을 발견했습니다.

Yuk, 적어도 필자는 교체 플러그인을 사용하기 위해 내 의견을 모두 다시 작성할 필요가 없음을 의미합니다.

(편집) 흥미롭게도, render'd 템플릿의 beanField 설정이 작동하지 않더라도 taglib에 붙여 넣는 것이 좋습니다. 이전에 내가 beanFieldConfig

<bean:inputTemplate> 
<div class='input ${errors ? 'errors' : '' }'> 
    ${label} 
    ${field} 
    <g:if test="${errors}"> 
     ${errors} 
    </g:if> 
</div> 
</bean:inputTemplate> 

에 있었을 때

그래서, 나는 해당 태그를 정의하는 경우 -

def beanFieldConfig = { 
    bean.inputTemplate { m -> 
     m.with { 
     """ <div class='input ${errors ? 'errors' : '' }'> 
    ${label} 
    ${field} 
    ${errors ?: ''} 
</div>"""} 
    } 
} 

다음 내 GSP에 <g:beanFieldConfig/><g:render template="/shared/beanFieldConfig" /> 교체를, 그것을 작동합니다.