Wicket:获取标签属性
Wicket: Getting Tags Attribute
我正在为某个项目结合 wicket 和 jQuery。
我在HTML:
<a wicket:id="link" testAttr="test"></a>
并使用 jQuery 我在单击页面上的其他组件时修改此属性。我这里的问题是如何从Java获取属性"testAttr"的当前值?我在每次 ajax 调用时获取值,并查看已更改的检查元素,所以没问题。
我已经尝试使用 getMarkupAttributes() 但我总是得到值 "test" 而不是我在带有 inspect 元素的页面上看到的当前值。还尝试使用 AttributeModifier 和 Appender,onComponentTag,但没有成功。
有人知道在这里做什么吗?
您必须将当前属性值作为 'dynamic extra parameter':
发送到服务器
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();
// ...
}
});
我正在为某个项目结合 wicket 和 jQuery。
我在HTML:
<a wicket:id="link" testAttr="test"></a>
并使用 jQuery 我在单击页面上的其他组件时修改此属性。我这里的问题是如何从Java获取属性"testAttr"的当前值?我在每次 ajax 调用时获取值,并查看已更改的检查元素,所以没问题。
我已经尝试使用 getMarkupAttributes() 但我总是得到值 "test" 而不是我在带有 inspect 元素的页面上看到的当前值。还尝试使用 AttributeModifier 和 Appender,onComponentTag,但没有成功。
有人知道在这里做什么吗?
您必须将当前属性值作为 'dynamic extra parameter':
发送到服务器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();
// ...
}
});