После миграции калитки на 1,5 я столкнулся с этой проблемой. В Wicket 1.5 Я (программист прежде меня) добавлял JS и CSS ссылки в конструктор, а затем компонент, simmilar к этому:Как добавить компонент ПОСЛЕ рендеринга страницы
public abstract class PageTemplate extends WebPage implements IHeaderContributor {
public BarePageTemplate() {
this(null);
}
public BarePageTemplate(PageParameters params) {
super(params);
add(JavascriptPackageResource.getHeaderContribution(ResourceMarker.class, "js/jquery-1.4.2.min.js"));
add(JavascriptPackageResource.getHeaderContribution(ResourceMarker.class, "js/jquery-ui-1.8.4.custom.min.js"));
[...]
jGrowlMarker = new Label("jGrowlMarker"); // placeholder for jgrowl messages
jGrowlMarker.setOutputMarkupId(true);
jGrowlMarker.add(new JGrowlBehavior());
add(jGrowlMarker);
}
}
В калитке 1.5 это уже не возможно. По migration guide я переработан этот код в это:
public abstract class PageTemplate extends WebPage implements IHeaderContributor {
public BarePageTemplate() {
this(null);
}
public BarePageTemplate(PageParameters params) {
super(params);
jGrowlMarker = new Label("jGrowlMarker"); // placeholder for jgrowl messages
jGrowlMarker.setOutputMarkupId(true);
jGrowlMarker.add(new JGrowlBehavior());
add(jGrowlMarker);
}
@Override
public void renderHead(IHeaderResponse response) {
response.renderJavaScriptReference(new CommonResourceRef("js/jquery-1.4.2.min.js"));
response.renderJavaScriptReference(new CommonResourceRef("js/jquery-ui-1.8.4.custom.min.js"));
[...]
}
}
Этот фрагмент кода работает, что я имею в виду, что в том, что она включает в себя те js
. Что вызывает у меня вопрос является то, что сейчас мой компонент (в данном случае jGrowlMarker) оказывает на странице перед страницей включает те ЯШ:
// jGrowl component
<script type="text/javascript" src="./wicket/resource/pl.softq.commons.ui.resource.ResourceMarker/js/jquery-1.4.2.min-ver-65B352E1BA79F0E2A3B1E014BC2571AF.js"></script>
<script type="text/javascript" src="./wicket/resource/pl.softq.commons.ui.resource.ResourceMarker/js/jquery-ui-1.8.4.custom.min-ver-88A9784D8E08D25998F239E2D65F03D7.js"></script>
Из-за того, что она не работает должным образом (я считаю, Thats вопрос). Он пытается создать компонент jGrowl, но после этого компонента добавляется jGrowl.js. [...]
символизирует остальную часть моих js и css refenreces (включая jGrowl). Я попытался добавить super.renderHead(response)
; до renderHead
, но он также не работает (super.renderHead относится к пустой в Component.class
).
Так что мой вопрос: как добавить компонент после renderHead
инициализирует или как его добавить внутри renderHead
. Я не специалист в калитки, поэтому, если вам нужно больше кода, дайте мне знать.