[Wicket-ja-user 251] Re: html(テンプレート)の場所

Back to archive index

Osamu Otani otani****@gmail*****
2008年 11月 21日 (金) 13:12:03 JST


皆様ありがとうございました。

最終的にWikiなどを見て次のように解決しました。
とんちんかのような事をしていたら指摘してください。


jp.test.sample.pages.Home
は
WEB-INF/Home.html

jp.test.sample.pages.user.Register
は
WEB-INF/user/Register.html
にマッピングされる


@Override
protected void init(){
 super.init();

 IResourceSettings resourceSettings = getResourceSettings();
 resourceSettings.addResourceFolder( "WEB-INF" );
 resourceSettings.setResourceStreamLocator( new PathStripperLocator(
"jp/test/sample/pages" ) );
}


public class PathStripperLocator extends ResourceStreamLocator{
    private String pagesPath;

   public PathStripperLocator( String pagesPath ){
      this.pagesPath = pagesPath;
    }

    @Override
    public IResourceStream locate( Class<?> clazz, String path ){
   if( path.indexOf( pagesPath, 0 ) != -1 ){
      IResourceStream located = super.locate( clazz, path.substring(
pagesPath.length() + 1; ) );
      if( located != null ){
        return located;
      }
        }

        return super.locate( clazz, path );
    }
}


2008/11/20 20:09 tj_takehana <tgens****@gmail*****>:
> 竹花です。
>
> アプリケーションクラスのinit()内で以下を設定してみてください。
> IResourceSettings resourceSettings = getResourceSettings();
> resourceSettings.setResourceStreamLocator(new ViewFileLocator());
>
>
> 上記にてセットしているViewFileLocatorクラスは以下のようになっています
>
> public class ViewFileLocator extends ResourceStreamLocator {
>
>    public ViewFileLocator() {
>    }
>
>    @Override
>    public IResourceStream locate(final Class< ? > clazz, final String path) {
>        IResourceStream located = super.locate(clazz, viewDirectoryPath(path));
>        if (located != null) {
>            return located;
>        }
>        return super.locate(clazz, path);
>    }
>
>    private String viewDirectoryPath(String path)
>    {
>        // パスを"/"で分割し配列に格納する
>        String[] segmentArray = path.split("/");
>
>        // WEB-INF上のリソース名を返す
>        return "../" + segmentArray[segmentArray.length - 1];
>    }
> }
>
>
>
>
> 2008/11/20 Osamu Otani <otani****@gmail*****>:
>> 回答ありがとうございます。
>> お教えいただいた方法ですと、
>>
>> ページクラスが
>> jp.test.sample.pages.SomePage
>> の時、テンプレートが
>> WEB-INF/jp/test/sample/pages/SomePage.html
>> にあればOkでした。
>>
>>
>> では無くて
>> jp.test.sample.pages.SomePage
>> がある時
>> WEB-INF/SomePage.html
>> できればWEB-INFの1つ上(webapp)の階層
>>
>> 即ちjp.test.sample.pagesを任意のディレクトリにマップする方法は無いでしょうか?
>>
>>
>> 2008/11/20 16:28 Osamu Otani <otani****@gmail*****>:
>>> Wicket初心者です。
>>>
>>> wicketではhtml(テンプレート)をページクラスがある階層と同じ場所に配置するようですが、
>>> それを、WEB-INFがある階層と同じ場所に置くにはどうしたらよろしいでしょうか?
>>>
>>> よろしくお願いします。
>>>
>> _______________________________________________
>> Wicket-ja-user mailing list
>> Wicke****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
>>
>
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
>


Wicket-ja-user メーリングリストの案内
Back to archive index