2012-06-15 4 views
0

목록보기의 항목 즉, 표 셀을 클릭 가능하도록 만들어 다른 페이지로 보낼 수 있습니다. 아무도 내 문제가 뭔지 알려 주실 수 있습니까? 미리 감사드립니다.목록보기 항목을 클릭 할 수있게 만들기

html로의

:

Last cause: Unable to find component with id 'title' in [ [Component id = movie_link]] 
Expected: 'movie_list:0:movie_link.title'. 
Found with similar names: 'movie_list:0:title', movie_list:1:title', movie_list:2:title' 
+1

html과 java의 hierarchyie가 일치하지 않는 것 같습니다. Java에서는 항목에 제목과 연도를 추가하지만 ( 요소) html에서는 요소 안에 있습니다. Link 객체에 java라는 제목과 연도를 추가해야합니다. – bert

+0

당신이 말한 것을 해낸 것은 그것을 해결했습니다, 나는 정말로 계층 구조에 대해, 웹 물건에 초보자들, 감사합니다. – NotCamelCase

답변

3

으로는 계층 구조가 일치하지 않기 때문에, 이런 일이 주석 : 내가

Application app = (Application) getApplication(); 
    MovieCollection col = app.getCollection(); 
    List<Movie> movies = col.getMovies(); 

    add(new ListView("movie_list", movies) { 

     @Override 
     protected void populateItem(ListItem item) { 
      final Movie movie = (Movie) item.getModelObject(); 
      item.add(new Label("title", movie.getTitle())); 
      item.add(new Label("year", Integer.toString(movie.getYear()))); 
      item.add(new Link("movie_link") { 

       @Override 
       public void onClick() { 
        setResponsePage(new MoviePage(movie)); 
       } 
      }); 
     } 
    }); 

을 시도하고 그리고 그 출력의 무엇 그 http://pastebin.com/qUaPzTwv

html과 java 사이에 의미가 있습니다. 즉, wicket이있는 요소가있는 경우 : wicket : id가있는 자식 요소가있는 id, 해당 p에 자식을 추가해야합니다. arents. 궁극적으로 이것은 페이지가 작동하는 방식입니다. 페이지는 하위 항목이있는 구성 요소 이상이며 ListView가 작동하는 방식입니다.

add(new ListView("movie_list", movies) { 

    @Override 
    protected void populateItem(ListItem item) { 
     final Movie movie = (Movie) item.getModelObject(); 
     Link link = new Link("movie_link") { 

      @Override 
      public void onClick() { 
       setResponsePage(new MoviePage(movie)); 
      } 
     }; 
     item.add(link); 
     link.add(new Label("year", Integer.toString(movie.getYear()))); 
     link.add(new Label("year", Integer.toString(movie.getYear()))); 
    } 
}); 

받은 오류로 인해 질문에 대한 답변을 얻을 수 있습니다. 그것은 당신에게 개찰의 목록 인 구성 요소 경로를 제공합니다 : id는 구성 요소에서 페이지로 돌아갑니다. 이 경우 "title"이 "movie_link"의 하위 항목이 될 것이라고 예상했지만 ListItem의 하위 항목 인 것으로 나타났습니다 ("0"은 ListView 하위 항목의 인덱스를 나타냅니다 ... ListItems)

+0

+1 문제를 해결하기 위해 예외 정보를 사용하는 방법을 지적하십시오. 당신은 OP에게 낚싯대와 물고기를주었습니다. :) – biziclop

관련 문제