zoukankan      html  css  js  c++  java
  • apache wicket 7.X让html回归webapp文件夹下

    在上篇文章我们看到了用wicket开发的第一个程序。可是有点是非常不好的。就是html页面跟Java在同一文件夹下,这跟我们平时开发。是不同的,假设页面过多,后期维护也是非常麻烦的。

    这篇文章我们就来说下,怎么把html放在webapp下了?

    先来看下改动后的项目结构:


    看下MyLcator.java这个文件:

    package cn.ztz.application;
    
    import java.net.URL;
    
    import org.apache.wicket.core.util.resource.UrlResourceStream;
    import org.apache.wicket.core.util.resource.locator.ResourceStreamLocator;
    import org.apache.wicket.protocol.http.WebApplication;
    import org.apache.wicket.util.resource.IResourceStream;
    
    /**
     * 
     * @author azhong
     *	2015-08-19 20:52:47
     */
    public class MyLocator extends ResourceStreamLocator {
    	@Override
    	public IResourceStream locate(Class<?> clazz, String path) {
    		String extension = path.substring(path.lastIndexOf(".") + 1);
    		String clazzName=clazz.getName();
    		String fileName=clazzName.substring(clazzName.lastIndexOf(".")+1);
    		URL url;
    		try{
    			url=WebApplication.get().getServletContext().getResource("/"+fileName+"."+extension);
    			if(url!=null){
    				return new UrlResourceStream(url);
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return super.locate(clazz, path);
    	}
    }
    



    HelloWorldApplication.java

    package cn.ztz.application;
    
    import org.apache.wicket.Page;
    import org.apache.wicket.protocol.http.WebApplication;
    /**
     * @author azhong
     * @version 1.0
     * 2015-08-19 20:54:04
     *
     */
    public class HelloWorldApplication extends WebApplication {	
    
    	@Override
    	public Class<? extends Page> getHomePage() {
    		return HelloWorld.class;
    	}
    	//初始化载入路径就能够了
    	@Override
    	protected void init() {
    		getResourceSettings().setResourceStreamLocator(new MyLocator());
    	}
    	
    }
    

    HelloWorld.java

    package cn.ztz.application;
    
    import org.apache.wicket.markup.html.WebPage;
    import org.apache.wicket.markup.html.basic.Label;
    /**
     * @author azhong
     * @version 1.0
     * 2015-08-19 20:53:24
     *
     */
    public class HelloWorld extends WebPage {
    	public HelloWorld(){
    		add(new Label("message","Hello world----wicket"));
    	}
    }
    

    如今大功告成,就是这么简单。

    事实上还有种方法也能实现这样的效果,这里博主就不说了。

    自我感觉没这样的好。


  • 相关阅读:
    HIVE入门
    Mapreduce中的reduce数量和分区控制
    MapReduce入门2-流量监控
    MapReduce入门
    树莓派保持网络连接shell脚本
    手动转屏
    Shell教程
    6个基本screen命令
    node.js 开发博客系统
    iap 应用内购买相关的解释
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7182663.html
Copyright © 2011-2022 走看看