estrutura de diretórios Wicket
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! ;)
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