Nếu tôi có thể thực hiện việc này, làm cách nào để gọi mã Java (các phương thức ví dụ) từ bên trong mã JavaScript, trong Wicket.Làm cách nào để gọi mã Java từ mã JavaScript trong Wicket?
Trả lời
erk. Câu trả lời đúng sẽ là ajax call backs. Bạn có thể tự mã js để móc vào jicket wicket, hoặc bạn có thể thiết lập callbacks từ các thành phần wicket trong java. Ví dụ, từ AjaxLazyLoadPanel:
component.add(new AbstractDefaultAjaxBehavior() {
@Override
protected void respond(AjaxRequestTarget target) {
// your code here
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.renderOnDomReadyJavascript(getCallbackScript().toString());
}
}
Ví dụ này cho thấy làm thế nào để thêm gọi lại mã để bất kỳ thành phần trong Wicket. Sau khi sự kiện OnDomReady kích hoạt trong trình duyệt của bạn, khi tải một trang, Wicket sẽ gây ra js enging, để gọi lại mã của bạn, sử dụng Ajax, đến phương thức 'respond' được hiển thị ở trên, tại thời điểm đó bạn có thể thực thi mã Java trên máy chủ và có khả năng thêm các thành phần vào mục tiêu ajax để được hiển thị lại.
Để thực hiện thủ công, từ js, bạn có thể móc vào hệ thống của wicket bằng cách in ra getCallbackScript(). ToString() thành thuộc tính trên thành phần wicket, sau đó bạn có thể truy cập từ js. Gọi url này từ js theo cách thủ công với wicket's wicketAjaxGet từ wicket-ajax.js.
Kiểm tra danh sách gửi thư cho rất nhiều của cuộc nói chuyện về chủ đề này: http://www.nabble.com/Wicket-and-javascript-ts24336438.html#a24336438
http://www.wicket-library.com/wicket-examples-6.0.x/index.html/ có rất nhiều ví dụ để giúp bạn có được đi.
Hoặc có một Có một cái nhìn tại DWR
DWR cho phép Javascript trong trình duyệt để tương tác với Java trên máy chủ và giúp bạn thao tác trang web với kết quả.
Do Dorward đề cập đến việc này được thực hiện qua AJAX
vỡ liên kết http://wicketstuff.org/wicket13/ajax/ – Gorky
Trích từ https://cwiki.apache.org/WICKET/calling-wicket-from-javascript.html
Nếu bạn thêm bất kỳ lớp mà kéo dài AbstractDefaultAjaxBehavior vào trang của bạn, wicket-ajax.js sẽ được bổ sung vào tiêu đề của trang web của bạn. wicket-ajax.js cung cấp cho bạn hai phương pháp cơ bản để gọi thành phần của bạn:
function wicketAjaxGet(url, successHandler, failureHandler, precondition, channel)
và
function wicketAjaxPost(url, body, successHandler, failureHandler, precondition, channel)
Dưới đây là một ví dụ:
Javascript
function callWicket() {
var wcall = wicketAjaxGet('$url$' + '$args$', function() { }, function() { });
}
$url$
là thu được từ phương pháp abstractDefaultAjaxBehavior.getCallbackUrl()
. Nếu bạn dán Chuỗi được trả về từ phương thức đó vào trình duyệt của bạn, bạn sẽ gọi phương thức trả lời, cùng áp dụng cho phương thức javascript.
Bạn có thể tùy ý thêm đối số bằng cách thêm các đối số này vào chuỗi URL. Họ lấy mẫu &foo=bar
.
bạn nhận được đối số tùy chọn trong phương pháp phản ứng Java như thế này:
Map map = ((WebRequestCycle) RequestCycle.get()).getRequest().getParameterMap();
hay này:
String paramFoo = RequestCycle.get().getRequest().getParameter("foo");
Đáng nói đến là API để trích xuất tham số đã thay đổi trong Wicket 1.5. GetLequest() 'để lấy một đối tượng' Request', bạn phải gọi 'getQueryParameters()' (đối với các tham số GET), 'getPostParameters()' (đối với các tham số POST), hoặc 'getRequestParameters() '(cho tất cả cùng một lúc). Mỗi trả về một cá thể 'IRequestParameters' mà bạn có thể truy vấn các tham số. Xem [tài liệu API] (http://wicket.apache.org/apidocs/1.5/). – cooperised
Ồ, và một hình ảnh xác thực: URL được trả về bởi 'getCallbackUrl()' có thể thay đổi trong chu kỳ xây dựng thành phần. Nó thường không chính xác nếu bạn cố gắng sử dụng nó trong constructor, và callbacks sẽ thất bại như là một kết quả. Tôi đã thành công khi sử dụng nó để ghi đè lên 'onBeforeRender()' của thành phần thay thế. – cooperised
- 1. gọi phương thức java trong mã javascript
- 2. Làm thế nào để gọi mã Java từ C#?
- 3. Làm thế nào để gỡ lỗi mã JavaScript được gọi từ Java (thông qua JSR-223)?
- 4. Gọi mã Scala từ Java?
- 5. Cách gọi một servlet từ mã Java
- 6. Làm cách nào để gọi hàm GWT java từ Javascript?
- 7. Gọi mã C# từ Java?
- 8. Gọi mã C# từ JavaScript trong Tài liệu trong WebBrowser
- 9. Mã Lisp được gọi từ Java
- 10. Cách gọi hàm dll ngoài từ mã java
- 11. Có cách nào để chạy mã R từ JavaScript?
- 12. Làm thế nào để gọi máy phát điện từ mã?
- 13. Làm thế nào để sử dụng scala.None từ mã Java
- 14. Hàm ASP.Net VB JavaScript gọi từ Mã Phía sau
- 15. Làm cách nào để tổ chức mã Javascript của bạn?
- 16. Làm thế nào để chạy mã MATLAB từ Java?
- 17. Làm cách nào để viết mã theo dõi javascript?
- 18. Làm cách nào để bảo mật Mã Javascript?
- 19. Làm thế nào để gọi hàm bên ngoài bên trong mã jquery từ html?
- 20. Làm cách nào để kích hoạt Google Analytics từ mã?
- 21. Làm thế nào để mã khóa lạc quan và bi quan từ mã java
- 22. gọi C++ mã từ c
- 23. Làm cách nào để gọi các phương thức trong C# dll từ mã C của tôi?
- 24. Cách gọi javascript từ Android?
- 25. wicket 6: gọi hàm javascript sau khi tải trang
- 26. làm thế nào để giải mã mã html bằng cách sử dụng Java?
- 27. Gọi ASP.NET Web API từ mã sau
- 28. Làm cách nào để tạo WADL từ mã RESTful Java trong IntelliJ IDEA?
- 29. Cách gọi Giải mã âm thanh SPEEX/Mã hóa bằng HTML5/JavaScript (Không có Flash)
- 30. Làm cách nào để gọi hàm Javascript từ Python?
cuối cùng liên kết không hoạt động –