2015-06-04 2 views
1

Недавно я начал изучать рамки Гобелена. Я читал пример книги о создании пользовательского компонента и использовании его в коде. По какой-то причине текст из компонента не отображается (я вижу только мирный текст hello). Вот это .java и ТМС файлы:Использование пользовательских созданных компонентов в гобелене

public class Index 
{ 
    public Index() { 

    } 

    public String getHello() 
    { 
     return "Hello world!"; 
    } 
} 

Индекс TML:

<html xmlns:t="http://tapestry.apache.org/schema/ 
tapestry_5_3.xsd"> 
<head> 
<title>Tapestry 5 Book</title> 
</head> 
<body> 
<t:MyComponent/> 

<h1> ${hello} </h1> 


</body> 
</html> 

MyComponent.java

public class MyComponent { 

    public String getStuff() 
    { 
     return "Random stuff"; 
    } 
} 

MyComponent.tml

<span> ${stuff} </span> 

Я также хотел бы сказать, что файлы .java находятся в их соответствии пакеты (страницы и компоненты в основном/java ...) и .tml-файлах находятся в соответствующих пакетах в ресурсах. Мой вопрос: почему текст компонента не отображается?

ответ

0

Все выглядит хорошо для меня, так что это действительно просто проверка подлинности того, что MyComponent.tml находится в нужном месте и видима в пути к классам во время выполнения. Например, это может быть проблема с конфигурацией IDE.

Для класса компонентов org.example.MyComponent типичным местом является src/main/resources/org/example/MyComponent.tml, но вы должны убедиться, что ваша среда IDE экспортирует файлы внутри src/main/resources.

+0

Ну, это папка, где я могу найти файл MyComponent.tml src \ main \ resources \ com \ example \ tutorial \ components – Dvorog

+0

Я также поместил строку System.out.println в конструкторе MyComponent, чтобы проверить, если конструктор вызывается. Конструктор не был вызван. – Dvorog

+0

Следующий ste должен публиковать вывод консоли при запуске; он перечисляет все страницы и компоненты, которые Tapestry идентифицирует при запуске. –

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