2012-07-06 2 views
2

내 템플릿을 컨트롤러 생성에 대해 더 스마트하게하고 싶습니다. 내 도메인 클래스에서 컨트롤러의 보안 주석에 추가해야하는 속성으로 enum을 지정했습니다.템플릿에 보안 주석을 추가하는 방법은 무엇입니까?

static enum SecurityProperties { 
    ROLE_SUPER_USER("ROLE_SUPER_USER"), 
    IS_AUTHENTICATED_FULLY("IS_AUTHENTICATED_FULLY") 

    SecurityProperties(String s) { 
     this.s = s 
    } 

    @Override 
    public String toString() { 
     return s; 
    }   
} 

템플릿이이 열거 형을보고 컨트롤러가 생성 될 때 컨트롤러에 보안 주석을 작성하고 싶습니다. 나는 템플릿을 많이 사용하며 실행하기 위해 큰 불편을 겪고있다. generate-all 그러면 모든 컨트롤러에 대해 보안 주석을 다시 추가해야한다.

제 문제는 도메인 클래스를 가져올 수 없기 때문에 템플릿에서 열거 형 액세스에 문제가 있다는 것입니다.

나는 일반적으로 다음과 같이 도메인 클래스를 얻을 :

grailsApplication.getArtefact("Domain", "myDomainClass")?.getClazz() 

그러나 grailsApplication 템플릿에서 사용할 수 없습니다.

다른 Grails/Groovy 방식으로 클래스를 만들거나 grailsApplication을 사용할 수 있습니까?

답변

2

스카 폴딩 템플릿 내에서 변수를 사용할 수 있으며 GrailsDomainClass이 포함되어 있으므로 domainClass.clazz에서 필요한 것을 제공해야합니다.

+0

굉장합니다. 나는 실제로 이것을 한 번 시도했지만 실패했다고 생각합니다. 이제는 그것이 어떤 이유로 열거 형을 좋아하지 않았기 때문에 실패했다고 봅니다. 대신 목록에 값을 넣었고 잘 액세스 할 수 있습니다. 감사! – ubiquibacon

관련 문제