首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wicket:通过ajax上传数据

Wicket:通过ajax上传数据
EN

Stack Overflow用户
提问于 2014-11-06 22:11:37
回答 1查看 484关注 0票数 2

我在客户端的javascript中有一些数据,我想传递给我的Wicket组件java代码进行处理(例如持久化)。

在按钮上使用saveButton.addButtonListener(WICKET_ID_SAVEBUTTON, null, this);可以让Wicket (在Java中)知道该按钮是通过ajax实现的。

如何通过additionalData或其他方式传递某些数据(例如,additionalData)?

代码语言:javascript
复制
@Override
public void onButtonClick(String clickedButtonId, Object additionalData, AjaxRequestTarget renderTarget)

谢谢!PS:我用的是Wicket-6

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-07 18:54:33

您可以使用AbstractDefaultAjaxBehavior并让您的保存按钮调用该函数。

将行为添加到页面中:

代码语言:javascript
复制
AbstractDefaultAjaxBehavior bum = new AbstractDefaultAjaxBehavior()
{
  @Override
  protected void respond(AjaxRequestTarget _target)
  {
    String data = RequestCycle.get().getRequest().getRequestParameters().getParameterValue("data").toString();
    // parse and save data
  }
};
myComponent.add(bum); // needed to allow access to getCallbackUrl()

覆盖页面中的renderHead并将AjaxBehavior设置为javascript函数

代码语言:javascript
复制
@Override
public void renderHead(IHeaderResponse response)
{
  super.renderHead(response);
  response.render(JavaScriptHeaderItem.forScript("function myFunction(data) {Wicket.Ajax.get({'u':'"+ bum.getCallbackUrl() +"&data=' + data})}", "myFunction"));
}

然后让标记中的“保存”按钮使用要保存的数据调用myFunction(数据)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26790376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档