Post 请求 Wicket
Post Request to Wicket
使用 Wicket,
如何将变量 slideCounter
发送到 Wicket?
有人可以举个例子吗?
我找不到这方面的更多信息。
$(document).on('click', '.lean-overlay', function() {
var slideCounter = 0;
// TODO Send slidecounter to wicket
});
发送请求很简单:Wicket.Ajax.post({"u": "the/url?slideCounter="+slideCounter})
更复杂的部分是构造the/url
。
- 要将其发送到组件,该组件应实现 IRequestListener 接口。要构建 url 使用:
requestCycle.urlFor(component)
- 为了更好地将它发送到 Behavior 实例化 AbstractDefaultAjaxBehavior 并使用其
#getCallbackUrl()
获得 url 后,您需要将其存储在页面 DOM 中,例如使用 OnDomReadyHeaderItem.forScript("window.TheUrl='"+theUrl+"';")
您可以使用 ajax 回调从 javascript 调用 wicket 代码。你可以这样做:
JAVA 代码:
AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() {
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
String componentMarkupId = component.getMarkupId();
String callbackUrl = getCallbackUrl().toString();
response.render(JavaScriptHeaderItem.forScript(
"var componentMarkupId='" + componentMarkupId
+ "'; var callbackUrl='" + callbackUrl + "';",
"values"));
}
protected void respond(final AjaxRequestTarget target) {
IRequestParameters parameters = RequestCycle.get().getRequest()
.getQueryParameters();
// write yout java code here
// if you want to use the slideCounter variable
// you have to retrieve its value like this:
// parameters.getParameterValue("slideCounter").toString()
}
};
add(behave);
JAVA脚本代码:
$(document).on('click', '.lean-overlay', function() {
var slideCounter = 0;
executeJava(slideCounter);
});
function executeJava(slideCounter) {
try {
var commandToSend = 'slideCounter=' + slideCounter;
var wcall = Wicket.Ajax.post({
u: callbackUrl + '&' + commandToSend
});
} catch (e) {
alert(e);
}
}
使用 Wicket,
如何将变量 slideCounter
发送到 Wicket?
有人可以举个例子吗?
我找不到这方面的更多信息。
$(document).on('click', '.lean-overlay', function() {
var slideCounter = 0;
// TODO Send slidecounter to wicket
});
发送请求很简单:Wicket.Ajax.post({"u": "the/url?slideCounter="+slideCounter})
更复杂的部分是构造the/url
。
- 要将其发送到组件,该组件应实现 IRequestListener 接口。要构建 url 使用:
requestCycle.urlFor(component)
- 为了更好地将它发送到 Behavior 实例化 AbstractDefaultAjaxBehavior 并使用其
#getCallbackUrl()
获得 url 后,您需要将其存储在页面 DOM 中,例如使用 OnDomReadyHeaderItem.forScript("window.TheUrl='"+theUrl+"';")
您可以使用 ajax 回调从 javascript 调用 wicket 代码。你可以这样做:
JAVA 代码:
AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() {
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
String componentMarkupId = component.getMarkupId();
String callbackUrl = getCallbackUrl().toString();
response.render(JavaScriptHeaderItem.forScript(
"var componentMarkupId='" + componentMarkupId
+ "'; var callbackUrl='" + callbackUrl + "';",
"values"));
}
protected void respond(final AjaxRequestTarget target) {
IRequestParameters parameters = RequestCycle.get().getRequest()
.getQueryParameters();
// write yout java code here
// if you want to use the slideCounter variable
// you have to retrieve its value like this:
// parameters.getParameterValue("slideCounter").toString()
}
};
add(behave);
JAVA脚本代码:
$(document).on('click', '.lean-overlay', function() {
var slideCounter = 0;
executeJava(slideCounter);
});
function executeJava(slideCounter) {
try {
var commandToSend = 'slideCounter=' + slideCounter;
var wcall = Wicket.Ajax.post({
u: callbackUrl + '&' + commandToSend
});
} catch (e) {
alert(e);
}
}