Hi
John Patterson wrote:
>
> Basically, every wicket:id in your html files must have a component in
> your java file and visa versa
>
I think, there is a mutual mapping between html and java.
<ul wicket:id = "menu"> -- MenuView view = new MenuView("menu", menu);
add(view); // in HeaderPanel.java
-- item.add(new BookmarkablePageLink("link", clas, new PageParameters("id="
+ element.getId()))); // in MenuView.java
-- item.add(new Label("label", element.getLabel())); // in MenuView.java
Sorry, I see that I pasted the result code not the wicket templates. Here
are the real template files:
HeaderPanel.html
<html xmlns:wicket>
<body>
<wicket:panel>
<h1>Wicket Example</h1>
<p id="titleblock">
Start of Example Title Goes Here
</p>
<ul wicket:id = "menu">
<li> </li>
</ul>
</wicket:panel>
</body>
</html>
HomePage.html
<html>
<head>
<title></title>
<link wicket:id='stylesheet'/>
</head>
<body>
Hello
</body>
</html>
John Patterson wrote:
>
> That can't be the markup that generated that error because there is no tag
> in it with a wicket:id="label" which the error message is complaining
> about.
>
> But you also do not add a tag for exampleTitle which you add here
> add(new Label("exampleTitle", exampleTitle));
>
> Basically, every wicket:id in your html files must have a component in
> your java file and visa versa
>
>
> btakacs wrote:
>>
>> Hi
>>
>> I'm new in wicket. I tried to display a list of components, but I get the
>> following error:
>>
>> WicketMessage: Unable to find component with id 'label' in
>> [MarkupContainer [Component id = link, page = com.myapp.wicket.HomePage,
>> path = 0:mainNavigation:menu:0:link.BookmarkablePageLink, isVisible =
>> true, isVersioned = true]]. This means that you declared wicket:id=label
>> in your markup, but that you either did not add the component to your
>> page at all, or that the hierarchy does not match.
>> [markup =
>> file:/D:/workspace/NetBeansProjects/WicketTest/build/web/WEB-INF/classes/com/myapp/wicket/HeaderPanel.html
>>
>> The html:
>> <html xmlns:wicket>
>> <body>
>> <wicket:panel>
>> <h1>Wicket Example</h1>
>> <p id="titleblock">
>> Start of Example Title Goes Here
>>
>> </p>
>>
>> <ul wicket:id="menu">
>> <li> </li>
>>
>> </ul>
>>
>> </wicket:panel>
>> </body>
>> </html>
>>
>> The MarkupComponents are:
>> # Path Size Type Model Object
>> 1 mainNavigation 3K com.myapp.wicket.HeaderPanel
>> No get
>> method defined for class: class com.myapp.wicket.HomePage expression:
>> mainNavigation
>> 2 mainNavigation:exampleTitle 421 bytes
>> org.apache.wicket.markup.html.basic.Label wicket
>> 3 mainNavigation:menu 4.4K
>> org.apache.wicket.markup.html.list.ListView
>> [EMAIL PROTECTED],
>> [EMAIL PROTECTED],
>> [EMAIL PROTECTED]
>> 4 mainNavigation:menu:0 4.4K
>> org.apache.wicket.markup.html.list.ListItem
>> [EMAIL PROTECTED]
>> 5 mainNavigation:menu:0:label 418 bytes
>> org.apache.wicket.markup.html.basic.Label First Page
>> 6 mainNavigation:menu:0:link 1K
>> org.apache.wicket.markup.html.link.BookmarkablePageLink No get method
>> defined for class: class com.myapp.wicket.HomePage expression: link
>> 7 mainNavigation:menu:1 4.4K
>> org.apache.wicket.markup.html.list.ListItem
>> [EMAIL PROTECTED]
>> 8 mainNavigation:menu:1:label 419 bytes
>> org.apache.wicket.markup.html.basic.Label Second Page
>> 9 mainNavigation:menu:1:link 1K
>> org.apache.wicket.markup.html.link.BookmarkablePageLink No get method
>> defined for class: class com.myapp.wicket.HomePage expression: link
>> 10 mainNavigation:menu:2 4.4K
>> org.apache.wicket.markup.html.list.ListItem
>> [EMAIL PROTECTED]
>> 11 mainNavigation:menu:2:label 418 bytes
>> org.apache.wicket.markup.html.basic.Label Third Page
>> 12 mainNavigation:menu:2:link 1K
>> org.apache.wicket.markup.html.link.BookmarkablePageLink No get method
>> defined for class: class com.myapp.wicket.HomePage expression: link
>> 13 param 409 bytes
>> org.apache.wicket.markup.html.basic.Label
>> 0
>> 14 stylesheet 1.4K
>> org.apache.wicket.markup.html.resources.StyleSheetReference No get
>> method defined for class: class com.myapp.wicket.HomePage expression:
>> stylesheet
>>
>> I have the following classes:
>>
>> public class HeaderPanel{
>> public HeaderPanel(String componentName, String exampleTitle)
>> {
>> super(componentName);
>> add(new Label("exampleTitle", exampleTitle));
>> ArrayList<MenuModel> menu=new ArrayList<MenuModel>();
>> menu.add(new MenuModel("1", "HomePage", "First Page"));
>> menu.add(new MenuModel("2", "HomePage", "Second Page"));
>> menu.add(new MenuModel("3", "HomePage", "Third Page"));
>>
>> MenuView view = new MenuView("menu", menu);
>> add(view);
>>
>> }
>> }
>>
>> public class MenuView extends ListView {
>>
>> public MenuView(final String id) {
>> super(id);
>> }
>>
>> public MenuView(final String id, final IModel model) {
>> super(id, model);
>> }
>>
>> public MenuView(final String id, final List list) {
>> super(id, list);
>> }
>>
>> @Override
>> protected void populateItem(ListItem item) {
>> final MenuModel element = (MenuModel) item.getModelObject();
>> Class clas;
>> try {
>> clas = Class.forName(element.getClas());
>> } catch (ClassNotFoundException ex) {
>> Logger.getLogger(MenuView.class.getName()).log(Level.WARNING,
>> null, ex);
>> clas=this.getApplication().getHomePage();
>> }
>>
>> item.add(new Label("label", element.getLabel()));
>> item.add(new BookmarkablePageLink("link", clas,
>> new PageParameters("id=" + element.getId())));
>> }
>> }
>>
>> public class MenuModel implements Serializable{
>>
>> public String clas;
>> public String label;
>> public String id;
>>
>> public MenuModel(String id, String clas, String label){
>> this.id=id;
>> this.clas=clas;
>> this.label=label;
>> }
>>
>> public String getClas() {
>> return clas;
>> }
>>
>> public void setClas(String clas) {
>> this.clas = clas;
>> }
>>
>> public String getLabel() {
>> return label;
>> }
>>
>> public void setLabel(String label) {
>> this.label = label;
>> }
>>
>> public String getId() {
>> return id;
>> }
>>
>> public void setId(String id) {
>> this.id = id;
>> }
>> }
>>
>>
>> Any tips?
>>
>> Thanks.
>>
>
>
--
View this message in context:
http://www.nabble.com/%22Unable-to-find-component-with-id%22-tp19091781p19102749.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]