• 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"));
    	}
    }
    

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

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

    自我感觉没这样的好。


  • 相关阅读:
    hdu 5269 ZYB loves Xor I &amp;&amp; BestCoder Round #44
    Hibernate之关于多对多单向关联映射
    測试CPU支持指令集AVX,AVX2,SSE情况的代码【VS2010调试通过】
    联想教育应用使用说明(7.6版本号)——第5章 常见的问题与解答
    java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener
    IETF和W3C的区别
    [ppurl]从”皮皮书屋”下载电子书的姿势
    javaEE面试重点
    HDU-1095-A+B for Input-Output Practice (VII)(多一个空格?)
    WinCC7.3 Win764位系统安装教程
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7182663.html
Copyright © 2020-2023  润新知