我在客户端的javascript中有一些数据,我想传递给我的Wicket组件java代码进行处理(例如持久化)。
在按钮上使用saveButton.addButtonListener(WICKET_ID_SAVEBUTTON, null, this);可以让Wicket (在Java中)知道该按钮是通过ajax实现的。
如何通过additionalData或其他方式传递某些数据(例如,additionalData)?
@Override
public void onButtonClick(String clickedButtonId, Object additionalData, AjaxRequestTarget renderTarget)谢谢!PS:我用的是Wicket-6
发布于 2014-11-07 18:54:33
您可以使用AbstractDefaultAjaxBehavior并让您的保存按钮调用该函数。
将行为添加到页面中:
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函数
@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(数据)。
https://stackoverflow.com/questions/26790376
复制相似问题