Nếu tôi có đường dẫn tương đối đến nội dung tĩnh (flash/blah.swf), cách tốt nhất để chuyển đổi chương trình này thành URL tuyệt đối (http://localhost/app/flash/blah.swf) là gì? Hoặc cách tốt nhất để lấy URL cơ sở của ứng dụng Wicket là gì? Tôi đã thử bằng cách sử dụng RequestUtils.toAbsolutePath nhưng nó dường như không hoạt động đáng tin cậy và thường xuyên ném ngoại lệ. Điều này cần phải hoạt động trên tất cả các máy chủ mà ứng dụng được triển khai.Wicket: Tương đối với URL tuyệt đối hoặc nhận URL cơ sở
Trả lời
RequestUtils.toAbsolutePath(RequestCycle.get().getRequest().
getRelativePathPrefixToWicketHandler());
làm việc cho tôi.
org.apache.wicket.protocol.http.servlet.ServletWebRequest
có phương thức getRelativePathPrefixToContextRoot()
(thực sự được định nghĩa là trừu tượng trong lớp cha).
Một thành ngữ tiêu chuẩn để sử dụng nó là
RequestCycle.get().getRequest().getRelativePathPrefixToContextRoot() + location;
tôi đã kết thúc bằng một cái gì đó như thế này sau khi thêm một tài sản base_url
đến lớp học của tôi MyApplication
mở rộng việc áp dụng wicket.
MyApplication app = (MyApplication)getApplication();
String appBaseUrl = app.getBaseUrl();
if (StringUtils.isEmpty(appBaseUrl)) {
appBaseUrl = RequestUtils.toAbsolutePath(urlFor(app.getHomePage(), new PageParameters()).toString());
app.setBaseUrl(appBaseUrl);
}
// Add base URL to <script wicket:id="base_url"></script> to use with Flash
add(new Label("base_url", "base_url = \"" + appBaseUrl + "\";").setEscapeModelStrings(false));
Đối với Wicket 1.5 có thông tin here
Đối với Wicket 6 nó là
String absoluteUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse("my-relative-url.html"));
này làm việc cho wicket 1.5 quá – 1ac0
Và URL cơ sở là 'String baseUrl = RequestCycle.get(). GetUrlRenderer(). GetBaseUrl(). ToString()' –
- 1. Nhận tuyệt đối (cơ sở) url trong Sinatra
- 2. Django Nhận URL Tuyệt đối
- 3. Áp dụng URL tương đối vào URL tuyệt đối
- 4. URL tuyệt đối từ đường dẫn tương đối
- 5. URL tuyệt đối từ cơ sở + URL có liên quan trong C#
- 6. Xác định xem URL tuyệt đối hay tương đối
- 7. Đường dẫn tệp tuyệt đối đến URL tương đối
- 8. Url tuyệt đối trong jsp
- 9. URL tuyệt đối (bên ngoài) với Html.ActionLink
- 10. Đường dẫn tuyệt đối Asp.Net của URL
- 11. Spring MVC vấn đề URL tuyệt đối
- 12. CakePHP URL Hình ảnh Tuyệt đối
- 13. Xác định xem Url có tuyệt đối hay tương đối từ vb
- 14. Asp. Net MVC RedirectToAction với URL tuyệt đối
- 15. Siêu liên kết URL lực HTML được coi là không tương đối (tuyệt đối)
- 16. Làm cách nào để tham gia các url tuyệt đối và tương đối?
- 17. Wicket Hình ảnh động URL
- 18. Tương đối với đường dẫn tuyệt đối trong HTML (asp.net)
- 19. Nhận url tương đối của ứng dụng từ Request.Url.AbsolutePath
- 20. Python __file__ thuộc tính tuyệt đối hoặc tương đối?
- 21. Noob với mod rewrite url và tương đối
- 22. Uri.IsWellFormedUriString cho tương đối Hashbang url tương thích
- 23. sử dụng đường dẫn tuyệt đối hoặc tương đối?
- 24. Tái url tuyệt đối từ các url thân trên một trang
- 25. Xây dựng một URL tuyệt đối từ một URL có liên quan trong Java
- 26. Tràn với bố cục bố cục tuyệt đối/tương đối
- 27. Wpf tuyệt đối so với URI gói tương đối
- 28. Cách sử dụng URL tuyệt đối trong khi lưu các nguồn hình ảnh trong Cơ sở dữ liệu từ CKEDITOR
- 29. Cách lấy URL tuyệt đối của webapp từ ExternalContext?
- 30. Đường dẫn tuyệt đối và tương đối
Lưu ý rằng điều này không làm việc trong Wicket 1.5, mà không có arg single 'toAbsolutePath' –