2015-02-23 122 views
2

我为一些项目组合了wicket和jQuery。Wicket:获取标签属性

我在HTML:

<a wicket:id="link" testAttr="test"></a> 

而且使用jQuery我修改这个属性被点击页面上的其他组件时。我的问题在于如何从Java中获取属性“testAttr”的当前值?我在每个Ajax调用中都会获取值,并查看已更改的检查元素,因此没有问题。

我试过用getMarkupAttributes(),但我总是得到价值“测试”,而不是我在检查元素的页面上看到当前的一个。还试着用AttributeModifier和Appender,onComponentTag,但没有运气。

有没有人有一个想法在这里做什么?

回答

2

您必须将当前属性值发送给服务器作为“动态额外的参数”:

link.add(new AjaxEventBehavior("click") { 
    updateAjaxAttributes(ARA ara) { 
    super.updateAttributes(ara); 

    ara.getDynamicExtraParameters() 
      .add("return {'q' : jQuery('#' + attrs.c).attr('testAttr') };"); 
    } 

    onEvent(ART art) { 
    RequestCycle requestCycle = RequestCycle.get(); 
    String val = requestCycle.getRequest() 
     .getRequestParameters() 
     .getParameterValue("q") 
     .toString(); 

    // ... 
    } 
}); 
+0

的作品就像一个魅力,非常感谢你:) – Ivan 2015-02-24 08:18:35