Pergunta

Eu estou tentando descobrir a estrutura de diretórios do wicket. Eu não obtê-lo em tudo! Vamos dizer que eu quero carregar uma imagem com imagens / logo.gif ou algo parecido. Onde é que eu tenho que colocar a pasta de imagens? Por favor me ajude com isso! ;)

Foi útil?

Solução

Wicket promove pensando páginas inteiras da Web através de paradigmas OOP e que inclui a manipulação recource.

Assim, se seu SomePage extends WebPage está em myprogram.view.pages pacote, você deve imagens mais prováveis ??add etc. para myprogram.view.pages.assets ( ou outro nome semelhante pacote, lógico ) e, em seguida, adicionar a imagem na fonte SomePage chamando

add(new Image("id", new ResourceReference(this.getClass(), "assets/logo.gif")));

Desta forma, você terá todas as suas páginas, seus componentes e dos ativos curso relacionados na estrutura razoável ( eu sou o único irritado que as pessoas ainda empinar todos os seus stylings CSS para uma enorme folha de estilo? ) que é separado de tudo o mais.

E agora as peças avançadas: Para elementos estáticos em sua página que você provavelmente não quer fazer o descrito acima, uma vez que é obviamente maneira um tanto pesado para fazê-lo e você pode realmente quer permitir que o cara designer para decidir qual imagem do logotipo usar. Para este tipo de coisas, o uso

<wicket:link>
    <img src="images/logo.gif" />
</wicket:link>

em linha reta no arquivo de marcação. A wicket: link de tag irá ligar automaticamente o recurso de imagem apontando para o arquivo correto (caminho é relevante para o SomePage.class!) e até mesmo automagicamente alças de cache.

Outras dicas

Você pode criar pasta de imagem diretamente na raiz do seu projeto. ou seja, seu arquivo guerra deve conter META-INF, WEB-INF, imagens em nível de raiz. Ou na raiz de sua pasta app web no servlet container. Em seguida, fazer referência a ela em seu html como

<img src="images/pic1.jpg"/>

Se você está fazendo referência a imagem do código de java, você deve fazê-lo em relação ao seu caminho de servlet. Ele pode ser acessado através do contexto servlet por

class MyPage extends WebPage {
  public MyPage() { 
     final ServletContext ctx = ((WebApplication) getApplication()).getServletContext();
     File imgFile = new File(ctx.getRealPath("/images/pic1.jpg"));
   }
}

No NetBeans está sob Source Pacotes tld.domain.project Lá você fazer uma nova pasta chamada imagens e funciona

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top