2011-01-15 2 views
4

Я примеряю следующий пример. ChangeTextOnClick.html отлично работает, поскольку он находится в том же каталоге, что и файл, содержащий следующий фрагмент (WicketLink.html). Но HelloWorld.html не работает, как в другом пакете. Как я могу ссылаться на страницу в другом пакете.wicket wicket: link

<wicket:link> 
     <ul> 
      <li> 
       <a href="ChangeTextOnClick.html">Change Text On Click</a> 
       <a href="com.merc.wicket.main/HelloWorld.html">Back</a> 
      </li> 
     </ul> 
    </wicket:link> 

мои страницы в структуре последующей дир

com.merc.wicket.link.WicketLink.java and .html 
com.merc.wicket.link.ChangeTextOnClick.java and .html 
com.merc.wicket.main.HelloWorld.java and .html 
+0

Я бы, вероятно, потрудился использовать/вместо. как разделитель каталогов, и вы также можете использовать относительные dirs, т. е. «../main/HelloWorld.html» – biziclop

+0

Спасибо, относительный url using ../ main/... работал. использование/как dir seperator не работает. Если вы могли бы ответить на этот вопрос, я могу принять его – user373201

+0

/separator тоже должен работать, но вам, вероятно, понадобится ведущий /, иначе калитка будет считать относительную ссылку. – biziclop

ответ

5

Оказывается, мое предположение было правильным, так вот она в ответ:

Калитка использует / в качестве разделителя, не ..

<wicket:link> 
    <ul> 
     <li> 
      <a href="ChangeTextOnClick.html">Change Text On Click</a> 
      <a href="/com/merc/wicket/main/HelloWorld.html">Back</a> 
     </li> 
    </ul> 
</wicket:link> 

одно решение, или используя относительные пути:

<wicket:link> 
    <ul> 
     <li> 
      <a href="ChangeTextOnClick.html">Change Text On Click</a> 
      <a href="../main/HelloWorld.html">Back</a> 
     </li> 
    </ul> 
</wicket:link> 
10

В калиткой, вы обычно ссылаться на другой HTML-файл, используя ссылку на Java, чтобы калитка генерировать HREF для вас. Вы можете монтировать страницу под URL-адресом исправления (называемой «Закладная ссылка», поскольку они независимы от сеанса пользователя) или просто используют ссылку.

Для Bookmarkable Link, вы могли бы сделать следующее в Init() ваш класс приложения калитки:

public class WicketApplication extends WebApplication{ 

    protected void init() { 
     super.init(); 
     mountBookmarkablePage("/ChangeTextOnClick", ChangeTextOnClick.class); 
     mountBookmarkablePage("/HelloWorld", HelloWorld.class); 
    } 
} 

С этим, вы всегда можете связаться эти 2 страниц под URL-адреса данной.

Вы можете создать ссылку, указывающую там, используя это в MyPage.java:

add(new BookmarkablePageLink<ChangeTextOnClick>("myExampleLink" 
        ,ChangeTextOnClick.class) 

и в соответствующем mypage.html:

<a href="thisGetsReplacedAtRuntime" 
        wicket:id="myExampleLink">Change Text On Click</a> 

Если вы не «т хотите, чтобы ссылки на быть закладок, вам не нужен материал mountBookmarkablePage в init() и используйте ссылку aa вместо закладки BookmarkablePageLink.

Посмотрите на Wicket Wicki, вы найдете там много полезной информации.

0

выше ответ perfect.It нужно не только быть в другой папке в проекте, но и он может быть в любом месте папку в системе. Если возможно, этот файл будет перенаправлен, если настройка выполнена правильно в файле WicketApplication.

+4

Ответы могут быть изменены. Поэтому, если вы хотите прокомментировать ответ, функция комментария будет более полезна. – Nicktar

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