Извлечение дочерних элементов родителя с использованием кода скорости

Я сохраняю Азию в качестве родительского элемента. При этом я оставляю Индию и Китай в качестве дочерних элементов. Я хочу получить обе страны, используя код скорости.

Ниже приведен мой код: я использую метод getChildren() и получаю только первый дочерний элемент и не могу получить двух его дочерних элементов.

У меня есть родительский элемент как continent и дочерние элементы как countries.

#foreach ($cur_continent in $continent.getSiblings())
#foreach($countries in $cur_continent.getChildren())
$countries.getData()

person user3853393    schedule 18.07.2014    source источник
comment
Добро пожаловать. Пожалуйста, уточните свой вопрос; что именно вы спрашиваете и что вы пробовали?   -  person wberry    schedule 18.07.2014
comment
Является ли упомянутый код полным? Вам не хватает #end для #foreach   -  person Pankaj Kathiriya    schedule 18.07.2014


Ответы (1)


  • Какое сообщение об ошибке вы получаете, например. в лог файле?
  • Как упоминает Панкадж в комментариях: убедитесь, что у вас есть #end для каждого #foreach
  • Если вы хотите знать, какие методы вы можете вызывать для каждого элемента, вы можете предположить, что они являются объектами Java: начните с простого написания $continent.getClass().getName(), посмотрите результат и просмотрите интерфейс Java, поэтому что вы знаете, что вызывать для каждого объекта.
  • Обратите внимание, что вы используете getSiblings и getChildren - вероятно, ожидаете одинаковых/похожих результатов?

Когда вы просмотрите этот контрольный список, сообщите нам, что вы нашли

Редактировать: к сожалению, javadoc для com.liferay.portal.kernel.templateparser.TemplateNode еще нет, однако есть разница между getSiblings и getChildren, и я всегда их смешиваю - попробуйте оба варианта и дайте нам знать, если один из них работает. В настоящее время вы используете оба одновременно (в разных инструкциях). Я верю, что один из них сделает то, что вы хотите.

person Olaf Kock    schedule 18.07.2014
comment
Привет Кок Спасибо за ваш ответ. Здесь мой код также содержит #end, и я не получаю никаких ошибок. Моя проблема в том, что когда я использую getChildren, я получаю только первый дочерний элемент (Индия), а не все дочерние элементы (Индия, Китай). - person user3853393; 19.07.2014
comment
Кто-нибудь, пожалуйста, помогите мне в вышеуказанном вопросе. - person user3853393; 19.07.2014
comment
Итак, вы следовали рекомендациям, которые я дал? Каков результат $cur_continent.getClass().getName()? Каков интерфейс функции getChildren() этого класса? Чем он отличается от getSiblings()? - person Olaf Kock; 19.07.2014
comment
Да, я следовал вашим инструкциям. Имя интерфейса — com.liferay.portal.kernel.templateparser.TemplateNode, а методы getSiblings() и getChildren() — оба метода возвращают только список. Но я нахожу одно отличие в том, что метод is-getChildren() помещает Arraylist (группу объектов) в список. Я не понимаю, как получить список массивов из этого списка, и после этого мы должны получить значения из списка массивов. Пожалуйста помоги мне с этим. - person user3853393; 19.07.2014
comment
Кто-нибудь поможет мне в этом, пожалуйста? - person user3853393; 20.07.2014