2011-12-16 3 views
0

저는 grail에 익숙하지 않습니다. 컨트롤러에 스 캐 폴딩을 작성한 후 열에 제약 조건을 적용하는 방법을 알려주십시오. 즉 도메인에 열이 있습니다. - 이름, 전자 메일, 비밀 번호, 전화 번호를 표시하지만 목록에 표시 될 때 이름, 전자 메일 및 전화 번호 만 표시하려면 도메인을 통해이 작업을 수행 할 수있는 방법이 있습니까? 이 감사의 해결책을주세요.Grails : 목록에 표시 할 열에 제약 조건을 적용하는 방법

+0

만 목록 또는 모든 비계 전망했다 도메인 클래스를? –

답변

2

탐구하는 방법입니다 Grails가 컨트롤러, 뷰 등에서 사용하는 기본 템플릿을 덮어 쓰기위한 액세스 권한을 제공합니다. src/templates/scaffolding/list.gsp를 보면 일부 속성 ('id'및 'version)을 이미 제외하고 있음을 알 수 있습니다.

<% excludedProps = Event.allEvents.toList() << 'id' << 'version'       
allowedNames = domainClass.persistentProperties*.name << 'dateCreated' << 'lastUpdated' 

과 :

<% excludedProps = Event.allEvents.toList() << 'id' << 'version' 
excludedProps.addAll(domainClass.getClazz().excludedFromListViewProperties ?: []) 
allowedNames = domainClass.persistentProperties*.name << 'dateCreated' << 'lastUpdated' 

이 문제가 해결되지 않을 경우 알려줘 내가 대체의 list.gsp에서

static excludedFromListViewProperties = ["password"] 

: 내 도메인 클래스에 정적 목록을 추가 너를 위해서.

+0

감사합니다 .. 저의 작품. – Anu

0

비계가 장면 뒤에서 물건을 만듭니다. 명령이 실행

grails generate-all packageName.DomainClass 

후 당신이 원하는대로, 당신은 단순히 생성 된 컨트롤러와 뷰를 변경할 수 있습니다 당신은을 통해 모든 뷰와 특정 도메인 클래스의 컨트롤러를 생성 할 수 있습니다.

+0

네, 그 사실을 알고 있지만 저는 이것을 할 필요가 없습니다. 목록에 표시 할 열에 몇 가지 제약 조건을 적용 할 수있는 방법이 있습니까? – Anu

0

당신은 또한

을 명시 Dynamic Scaffolding에 모습을 가질 수, 표준 발판 뷰는 하나의 인스턴스에 대한 수집 및 인스턴스에 대한 양식 인스턴스 목록의 모델 변수를 기대합니다. '서적'이나 '서적'과 같은 속성을 사용하는 것은 유혹적이지만 작동하지 않습니다.

그래서, 원하는 필드 만 사용하여 인스턴스를 반환하여 스캐 폴딩 작업을 무시할 수 있습니다. 하지만 중간 데이터 형식이 필요할 수도 있습니다. 이것은 당신은 템플릿 (http://grails.org/doc/latest/ref/Command%20Line/install-templates.html)

grails install-templates 

템플릿 당신에게 줄을 설치할 수 있습니다

0

a를 excludedFromListViewProperties 속성의 존재 확인 · 병의 대답은 약간 개선 된 버전 :

domainClass.getClazz().metaClass.properties.findAll{ 
    if (it.name == "excludedFromListViewProperties"){ 
     excludedProps.addAll(domainClass.getClazz().excludedFromListViewProperties ?: []) 
    } 
} 
관련 문제