Wicket 1.5에서는 ChildFirstHeaderRenderStrategy (실험) 또는 ParentFirstHeaderRenderStrategy (기본값)와 같이 IHeaderRenderStrategy
구현이 다른 experimenting입니다. 1.4에서 헤더 기여도를 재정렬하는 것이 문제였던 것 같습니다. 그래서 그들은 그것을 강조하고 있습니다.
그러나 Wicket 1.4에는 몇 가지 해결책이 있습니다. 아이디어는 행동 목록을 재정렬하는 것입니다 (헤더 기여도는 또 다른 IBehavior입니다). 각 구성 요소는 덮어 쓸 수있는 보호 된 getBehaviors()
메서드가 있습니다. 트릭은 먼저 포함되어야하는 특수 JS 파일에 해당하는 동작을 찾는 것입니다. HeaderContribution 객체의 인스턴스를 직접 생성하여 인스턴스 비교를 수행 한 다음 ArrayList를 사용하여 Behaviour 목록의 중간에서 HeaderContribution 객체를 동작 목록의 맨 위로 이동시킬 수 있습니다.
public abstract class BasePage extends WebPage {
public BasePage() {
add(HeaderContributor.forJavaScript("foo-base.js"));
}
}
홈 페이지는 추가 스크립트를 추가하여 먼저 렌더링해야합니다. 홈페이지는 또한 geBehaviors을 덮어 씁니다() 메소드 :
public class HomePage extends BasePage {
private static final long serialVersionUID = 1L;
private final HeaderContributor contrib = new HeaderContributor(
new IHeaderContributor() {
public void renderHead(IHeaderResponse response) {
response.renderJavascriptReference("foo-first.js");
}
});
public HomePage(final PageParameters parameters) {
add(new Label("message", "If you see this message ..."));
add(contrib);
}
@Override
protected List getBehaviors(Class type) {
List behaviors = super.getBehaviors(type);
ArrayList sortedBehaviors = new ArrayList(behaviors);
boolean moveToTop = true;
if (moveToTop) {
if (!sortedBehaviors.remove(contrib)) {
throw new IllegalStateException();
}
sortedBehaviors.add(0, contrib);
}
return sortedBehaviors;
}
}
자, 최종 결과는 홈페이지에 의해 추가 된 스크립트가 먼저 렌더링되고 BasPage에 의해 추가 된 스크립트가 이후에 오는 것입니다.
또한 머리 부분에 스크립트를 삽입 필요하지 않습니다 비동기 태그에 대한 자세한 내용은 웹트 렌즈 지원 센터에 문의 고려할 수
<html xmlns:wicket="http://wicket.apache.org/... >
<head>
<title>Wicket Quickstart Archetype Homepage</title>
<script type="text/javascript" src="foo-first.js"></script>
<script type="text/javascript" src="foo-base.js"></script>
</head>
: http://slidesha.re/fSPlyV – hemp
하지 귀하의 질문에 진짜 대답, 하지만 문제가 해결 될 수도 있습니다. 닫는