Ok, so I try with your method. This is my model : public class QuestionnaireModel extends LoadableDetachableModel<Questionnaire> { @SpringBean private ServiceQuestionnaire serviceQuestionnaire; private Long id;
public QuestionnaireModel(Long primaryKey) { id = primaryKey; } @Override protected Questionnaire load() { return serviceQuestionnaire.getOne(id); } } But I have a null pointer exception : java.lang.NullPointerException at fr.statlife.protoE4N.pages.membre.QuestionnaireModel.load(QuestionnaireModel.java:22) at fr.statlife.protoE4N.pages.membre.QuestionnaireModel.load(QuestionnaireModel.java:1) at org.apache.wicket.model.LoadableDetachableModel.getObject(LoadableDetachableModel.java:120) at org.apache.wicket.Component.getDefaultModelObject(Component.java:1724) at fr.statlife.protoE4N.pages.membre.QuestionnairesPage$BoutonRemplirQuestionnaire$1.onClick(QuestionnairesPage.java:112) [...] Questionnaire is also an attribute of my Page and maybe there is a conflict. This code calls my new model : item.add(new BoutonRemplirQuestionnaire("boutonQuestionnaire", new QuestionnaireModel(q.getIdQuestionnaire()))); and this is inner class BoutonRemplirQuestionnaire : class BoutonRemplirQuestionnaire extends Panel { public BoutonRemplirQuestionnaire(String id, IModel<?> model) { super(id, model); //Ajout du lien qui affichera le questionnaire AjaxLink<Void> showQuestionnaire = new AjaxLink<Void>("remplir") { @Override public void onClick(AjaxRequestTarget target) { qCourant = (Questionnaire)getParent().getDefaultModelObject(); target.appendJavascript("Wicket.Window.unloadConfirmation = false;"); questionnaireContentPanel.initialiserQuestionnaire(qCourant); modalWindow.setContent(questionnaireContentPanel); modalWindow.setTitle(qCourant.getTitre()); modalWindow.show(target); } }; add(showQuestionnaire); } } the NullPointerException is sent by this line : qCourant = (Questionnaire)getParent().getDefaultModelObject(); Maybe modal window make this problem more complex...