Wicket URL bookmarkablePage構造を変更するには?
問題
デフォルトでは、Wicketで生成されたURLは、長くてsuckくて、ページの完全修飾クラス名を含んでいます。 それはこのように見えます:
http://localhost:8080/example?wicket:bookmarkablePage=:com.example.page.ResultPage&url=google.com
Note
URLの「wicket:bookmarkablePage」とは一体何ですか。また、Wicketがこのような醜いURL構造を生成したのはなぜですか。 Wicketアプリケーションをクライアントサイトにデプロイした後、多くのクライアントのメールが送信され、andいbookmarkablePage URL構造に関する苦情が寄せられます。 有線で聞こえるだけで、まったく意味がありません。これの利点は何ですか? このvisitいURLアドレスをブックマークするように訪問者に依頼しますか?
溶液
幸い、Wicketは「URL mounting」機能を提供して、醜いURLのブックマーク可能なページをアプリケーションの特定のパスにクロークします。
これを修正するには、Wicketアプリケーションクラスのデフォルトの醜いURL構造である「init()」メソッドを次のように変更します。
import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.target.coding.QueryStringUrlCodingStrategy; import com.example.user.SuccessPage; public class WicketApplication extends WebApplication { @Override protected void init() { super.init(); mount(new QueryStringUrlCodingStrategy("result",ResultPage.class)); } }
QueryStringUrlCodingStrategy()を使用して、「ResultPage.class」ページをすっきりとしたわかりやすいURL構造「result」にマウントします。出力を参照してください。
http://localhost:8080/example/result?url=google.com