2011-04-08 24 views
7

Ben oldukça yeni grails. Sadece denetleyicideki değişkenlerin görünümde görünmediğini fark ettim. Bir kapsamı atadığımda yalnızca değişken değerleri alabilirim. Bu standart Grails yolu mu yoksa bu yanlış mı yapıyorum? Ayrıca, params kapsamı kullanmak için doğru olanı mı yoksa oturumları mı kullanmalıyım, servletContext? GörünümGrails denetleyicisi değişkenleri görünümlerde görüntülenemiyor

<td> <input type="text" value="${params.get('uploc')}/${fileResourceInstance.decodeURL()}"></input></td> 

yılında Kontrolör

String uploadLocation = grailsApplication.config.uploads.location.toString() 
params.put "upLoc", uploadLocation 

yılında

Ben Ruby on Rails ile çok tanıdık ve bu RoR çok farklı şekilde ele almaktadır. Teşekkürler.

cevap

11

Maricel'in dediği gibi yapabilirsin, ama başka bir yolu var (bence bu varsayılan bir yol): geçmek istediğiniz değerleri eylem işlevine döndür. Örneğin

def test = "abc" 
def num = 3 

return [testInView: test, numInView: num] 

Sonra görünümünde size $ {testInView} $, erişebilir {numInView}

Başka biraz farklı yol: Eğer "dönüş" anahtar kelimesini ihmal edilebilir, bu dönmek için "harika bir yol" var Fonksiyonun son değeri.

6
Bunu, sizin denetleyici eylem hale yöntemle modelin bir parçası olarak Değişkeninizi geçmesi gerekiyor

:

String uploadLocation = grailsApplication.config.uploads.location  
render(model: [uploadLocation: uploadLocation]) 

Sonra görünümünde sadece yapabilirsiniz:

<td> 
    <input type="text" value="${uploadLocation}/${fileResourceInstance.decodeURL()}"/> 
</td> 

Öte yandan, bu Config.groovy'de tanımlanan bir değer ise, bunu gsp:

<%@ page import="org.codehaus.groovy.grails.commons.ConfigurationHolder as CH" %> 

<td> 
    <input type="text" value="${CH.config.uploads.location}/${fileResourceInstance.decodeURL()}"/> 
</td> 

Daha fazla bilgi için Grails docs'u kontrol edin.

1

İlginç bir yan not. İşleminizden herhangi bir şey döndürmezseniz, eylemin kapsamındaki tüm değişkenler burada açıklandığı şekilde görünümünüzde kullanılabilir: http://www.grails.org/Controllers+-+Models+and+Views

+0

Bağlantınız olan sayfada bu belgeyi göremiyorum, ayrıca, yalnızca eylem alanı mı? değişkenler ya da sınıf geniş? – EdgeCaseBerg