2009-06-19 2 views
15

taglib 호출에는 속성 매개 변수가 있지만 태그 링크 내부에서 사용하는 태그 자체의 내용도 사용하려고합니다. g.link() 호출에 전달할 속성을 찾을 수 없어서 링크 텍스트를 렌더링합니다. 나는 이미 '몸'과 ​​'링크', '텍스트'와 '링크 텍스트'를 시도해 보았습니다.Grails는 GSP 외부에서 taglib를 사용합니다.

나는

g.link(action:"foo", controller:"bar", _____:"text of the link here")

를 호출 할 수 있도록 기대하고 있습니다 만 (좋든 나쁘 든)에 통과 할 매개 변수가 없습니다 _____

답변

4

에 넣어 해야할지 모르겠어.

링크의 텍스트를 가져 오려면 텍스트를 클로저로 전달하십시오.

g.link(action:"foo", controller:"bar") { "text of the link here" }
25

보통이처럼 수행

g.link(action:"foo", controller:"bar", "text of the link here") 

링크 텍스트가 마지막 매개 변수가 될 필요가 없습니다, 그것은 어디서든 나타날 수 있습니다

g.link("text of the link here", action:"foo", controller:"bar") 

합니다. 폐쇄와

사용법 :

대신 문자열 반환하는 폐쇄 사용할 수있는 문자열의

:

g.link(action:"foo", controller:"bar", {"text of the link here"}) 

와, 메소드 호출의 마지막 매개 변수에 어떤 끝내 폐쇄와 마찬가지로, 당신은 닫는 괄호 후를 넣을 수 있습니다 :

g.link(action:"foo", controller:"bar") {"text of the link here"} 
+1

문서는 이것을 전혀 참조하지 않지만 종결을 보여줍니다. 문서 도구를 업데이트해야 할 수도 있습니다. – user111544

+1

나는 그것을 설명하기 위해 답을 업데이트했다. – Zim

0

을 완벽하게하기 위해, 그것은이 문서에 언급되지 않은 이후 : 당신이 (metod 전화로) 태그를 호출하는 경우 자신의 taglib 내부에서 바깥 쪽 태그 안에 다른 내용 (out << 사용)을 출력하기 위해 클로저를 사용할 수 있습니다. 예 :

out << g.form(method: "post", controller: "login") { 
    out << "Name: " << g.textField(name: "name") << "<br>" 
    out << "Password: " << g.passwordField(name: "password") << "<br>" 
    out << g.submitButton(name: "login") 
}