2015-04-05 35 views
0

我在檢票口的應用程序設置我希望在根安裝一個用戶名參數一樣安裝根URL參數崩潰資源位置檢票

mountPage(Profile.class,「/ $ {用戶名}」)相似, twitter如何將用戶名映射到其帳戶。在wicket中,這似乎使資源位置算法崩潰。在所有的CSS,JS文件現在加載404的意義上。

有沒有解決這個問題的方法?

回答

1

感謝martin-g。覆蓋MountMapper並將url段設置爲1,以便它不映射到其他資源。

public class UsernameMountUrlMapper extends MountedMapper { 

    public UsernameMountUrlMapper(String mountPath, 
     Class<? extends IRequestablePage> pageClass) { 
     super(mountPath, pageClass); 
    } 

    @Override 
    protected boolean urlStartsWithMountedSegments(Url url) { 
     return url.getSegments().size() == 1 &&  !url.getPath().equals("favicon.ico") && !url.getPath().equals("oops") && !url.getPath().equals("Index"); 
    } 

} 
1

該代碼應該看起來像:mountPage (Profile.class, "/${username}")。請注意我添加的$。這意味着指定的路徑參數是必需的。

如果這不能解決問題,請詳細說明問題。

+0

我只在這裏錯過了美元。它在我的代碼中。看起來/ mountpoint與/ $ {username}衝突。 – 2015-04-07 10:15:01

+0

位於的資源現在顯示../resource/com.app.prototype.web.Authenticated/bootstrap.min-ver-1428321141752.css。當它以前是./wicket/resource/com.app.prototype.web.Authenticated/bootstrap.min-ver-1428321141752.css – 2015-04-07 10:20:34

+0

如果它們發生衝突,那麼您可以使用主頁作爲入口點。如果有parameters.get(0),那麼這是用戶名。如果沒有這樣的參數,則顯示通用頁面。 – 2015-04-07 10:33:07