2015-08-25 4 views
0

def map = [name : "akshay"] def name_map = [full_name : map] // КартаПредположим, у меня есть список или карта в контроллере, поэтому как я могу получить к ним доступ в режиме GSP с помощью метода render?

def list = ["c", "c++", "java"] // Список
// хочет сделать выше карт и списка GSP и хочет, чтобы отобразить его на странице

ответ

0

метода отрисовки принимает карту. В вашем контроллере укажите имя представления, которое вы хотите отобразить, и карту модели, содержащую ваши данные, и затем вы можете напрямую получить доступ к карте модели на вашем gsp.

def map = [name: "akshay"] 
def name_map = [full_name: map] //map 
def list = ["c", "c++", "java"] //list 

render view: 'index', model: [nameMap: name_map, langList: list] 

В вашем GSP, перебрать список:

<g:each in="${langList}" status="index" var="lang"> 
    ${lang} 
</g:each> 

и перебрать карту карты:

<g:each in="${nameMap}" status="index" var="fullNameMap"> 
    ${fullNameMap.key} 
    <g:each in="${fullNameMap.value}" status="subIndex" var="map"> 
     ${map.key} 
     ${map.value} 
    </g:each> 
</g:each> 

Также слово совета, если вы знаете, тип данных переменную заранее, используйте вместо этого тип данных.

+0

Спасибо Sandeep. Работает. А также благодарю вас за советы. –

+0

o/p есть. full_name name akshay c C++ java –

+0

То, с чем я не согласен, не использует 'def'. Вот почему: 'def map1 = [name: 'akshay'] Map map2 = [имя: 'akshay'] def list1 = [" c "," C++ "," java "] Список list2 = [" c », "C++", "Java"] утверждают map1.getClass() == LinkedHashMap утверждают map2.getClass() == LinkedHashMap утверждают list1.class == ArrayList утверждают list2.class == ArrayList' –

 Смежные вопросы

  • Нет связанных вопросов^_^