2010-05-06 9 views
10

क्या Grails कंसोल के अंदर से टैगलिब बंद करने का कोई तरीका है? मैं grails कंसोल के भीतर संदेश टैग प्राप्त करने में सक्षम होना चाहता हूं और मैं इसे समझ नहीं सकता ...Grails कंसोल में TagLib सामान कॉलिंग?

उत्तर

11

आप कॉन्फ़िगर किए गए टैगलिब प्राप्त कर सकते हैं, लेकिन अधिकांश वेब अनुरोध के संदर्भ में चलने की उम्मीद है। चारों ओर पाने के लिए है कि आप एक नकली अनुरोध बाध्य कर सकते हैं:

import grails.util.GrailsWebUtil 

GrailsWebUtil.bindMockWebRequest ctx 

def g = ctx.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib') 
String message = g.message(code: 'default.button.delete.confirm.message') 

अनुरोध भेजने के स्थान निर्धारित करके अन्य भाषाओं के लिए संदेशों प्राप्त कर सकते हैं, उदाहरण के लिए

import grails.util.GrailsWebUtil 

def webRequest = GrailsWebUtil.bindMockWebRequest(ctx) 
webRequest.currentRequest.addPreferredLocale(Locale.GERMANY) 

def g = ctx.getBean('org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib') 
String message = g.message(code: 'default.button.delete.confirm.message') 
3

@Burt console plugin का उपयोग करते हुए इस और भी आसान हम वेब अनुरोध नकली की जरूरत नहीं है के रूप में है ...

import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib 

// Getting the class name to reduce horizontal 
// scrolling in StackOverflow 
def g = ctx.getBean(ValidationTagLib.class.getName()) 

g.message(code: 'default.button.delete.confirm.message'); 

आप चलाकर अपने आवेदन में सभी tagLibs की एक सूची प्राप्त कर सकते हैं कंसोल में यह कोड ...

// prints a bean name per line. 
ctx.getBeanNamesForType(Object).findAll { 
    it =~ /.*TagLib$/ 
} .sort() {println it} 

// add false to prevent console printing the map out 
false 
संबंधित मुद्दे