2010-12-15 11 views
2

私は改札する新たなんだ、と私は、私は自分のアプリケーションを実行しようとしたとき、彼はエラーを以下の取得:改札モーダルウィンドウのエラー

WicketMessage:モーダルウィンドウのコンテンツIDが間違っているの。コンポーネントID:myPanel;コンテンツID:コンテンツ:私のAddStudentのHTMLで

<span wicket:id="InformationDialog"/> 
<span wicket:id="myPanel"/> 

これらは(コンストラクタで)AddStudent.javaの私の開始タグ

後の最初のものです:

panel=new InformationPanel("myPanel"); 
message=new ModalWindow("InformationDialog"); 
message.setContent(panel); 
message.setCssClassName(ModalWindow.CSS_CLASS_BLUE); 
message.setTitle("Important Information"); 

InformationPanelが拡張するパネル:

<html> 
<wicket:panel> 
<table> 
<tr> 
<td><span wicket:id="message"/></td> 
</tr> 
<tr> 
<td><input type ="button" value ="OK" wicket:id="ok"/></td> 
</tr> 
</table> 
</wicket:panel> 
<html> 
明らかに10

、私は、対応するJavaクラス、それが適切でない可能性がありますが、ここでそれが持っている:

package myapp.project; 

import org.apache.wicket.markup.html.basic.Label; 
import org.apache.wicket.markup.html.form.Button; 
import org.apache.wicket.markup.html.panel.Panel; 

public class InformationPanel extends Panel { 
    private Button ok; 
    private Label messageLabel; 
    public InformationPanel(String id){ 
     super(id); 
     messageLabel=new Label("message",""); 
     ok=new Button("ok"){ 
      public void onSubmit(){ 
       AddStudent student = new AddStudent(); 
       setResponsePage(student); 
      } 
     }; 
     add(ok); 
     add(messageLabel); 

    } 
    public void setSuccessful(){ 
     messageLabel.setDefaultModelObject("You have successfully added the student"); 
    } 
    public void setUnSuccessful(){ 
     messageLabel.setDefaultModelObject("A student with that username already exists!"); 
    } 

} 

問題のないアイデア。あなたのAddStudent.javaコンストラクタで事前に感謝

答えて

7

は、あなたが一致していない特定のIDを持っているために、その内容を必要ModalWindow

panel=new InformationPanel("myPanel"); 
message=new ModalWindow("InformationDialog"); 
message.setContent(panel); 

ウィケットを持っています。

message.getContentId()はIDが揃え作るべき

message=new ModalWindow("InformationDialog"); 
panel=new InformationPanel(message.getContentId()); 
message.setContent(panel); 
にこれを変更してみてください。

+0

ありがとうございますが、今すぐ言われます:WicketMessage:[MarkupContainer [Component id = _extend8]]に 'InformationDialog'というIDのコンポーネントが見つかりません。つまり、マークアップでwicket:id = InformationDialogを宣言しましたが、ページにコンポーネントをまったく追加しなかったか、階層が一致していないことを意味します。 [markup = file:/ C:/workspace/MyApp/context/WEB-INF/classes/myapp/project/AddStudent.html –

+0

これは、HTMLマークアップとJavaの間に不一致があります。 AddStudentクラスに 'add(message)'がありませんか? –

+0

これは私が投稿した直後にすぐに実現しました。私はそれをソートしたと思っていましたが、明らかにそうではありません。どうもありがとうございます! –

関連する問題