2011-10-17 21 views
7

Tôi muốn thêm một tham số vào bản đồ params của mình và liên kết phần còn lại trong liên kết. Tại thời điểm này, tôi chỉ ràng buộc params cổ điển như sau:Grails - Thêm thông số vào bản đồ params

<g:link class="email" controller="administrator" action="test" params="${params}">Link text</g:link> 

Làm thế nào tôi có thể thêm một tham số để bản đồ params?

Cảm ơn bạn trước sự giúp đỡ của bạn. Kính trọng,

EDIT:

Ok, tôi có tìm thấy một cách để làm điều đó.

params="${params + ['forwardURI': request.forwardURI]}" 

Tôi không biết có cách nào khác giống như Grails để làm điều đó không. Nếu có, tôi sẽ có nghĩa vụ phải tìm hiểu nó;)

+0

Bạn có thể muốn thay đổi văn bản liên kết của mình vì điều này khá không phù hợp. Về chủ đề, tại thời điểm nào bạn đang cố gắng ràng buộc dữ liệu? – Joseph

+0

Hi Joseph, Tôi sẽ xóa thẻ nếu bạn nhấn mạnh nhưng, làm việc theo cách đó với bản đồ 'thông số', bạn sẽ không gọi dữ liệu đó? –

+0

BTW Burt, tôi nghĩ rằng tôi tìm thấy 'tôi đánh vợ tôi' cách tấn công hơn :) Nhưng sự lựa chọn của bạn :) –

Trả lời

2

Nếu bạn phải thực hiện việc này nhiều lần, bạn có thể sử dụng câu trả lời bạn đã đăng trong Thư viện thẻ wrapper g:link, vì Thư viện thẻ có quyền truy cập paramsrequest.

def forwardAwareLink = { attr, body -> 
    attr.params = params + ['forwardURI': request.forwardURI] 
    out << g.link(attr, body) 
} 

Và trong GSP:

<g:forwardAwareLink class="email" controller="administrator" action="test">Link text</g:forwardAwareLink> 

Nếu bạn muốn sử dụng thẻ với bản đồ thông số tùy chỉnh của riêng bạn từ GSP, bạn cũng có thể sử dụng sau trong Tag Thư viện:

attr.params = attr.params + ['forwardURI': request.forwardURI] 
Các vấn đề liên quan