2011-05-16 5 views
0

을 나는 folowing GSP 페이지가 있습니다Grails의 검색 메커니즘

, 매번 "검색을 클릭"무엇 내가하고 싶은
<g:form controller="??" action="??"> 
    <h1>Search</h1> 
    <g:submitButton name="search" value="Search"/> 

    <div id="resultsHere"> 

    </div> 

    </g:form> 

, 데이터베이스가 해당 레코드를 검색되어, 책 제목을 찾고 메신저를 상상할 수 있습니다. 그래서 내가 제목을 쓸 때마다 데이터베이스는 책을 찾고 책과 관련된 모든 데이터를 인쇄합니다. 어떻게 할 수 있습니까 =?

내 생각이 사업부에서 이와 비슷한 데 :

<ul> 
<g:each in="${bookList}"> 
    <li>Name: ${it.name}, Locale: ${it.isbn}</li> 
</g:each> 
</ul> 

그래서 지점입니다, 검색 버튼을 클릭하면, 해당 작업은 같은 페이지에 페이지를 리디렉션해야 처리 컨트롤러, 필터링 된 도서 목록을 전달하여 <g:each in="${bookList}"> 태그에 인쇄 할 수 있도록하십시오.

이 경우 가장 좋은 해결책이되고 싶습니다. 나는 또한 페이지에서 직접 결과를 렌더링 할 수 있지만 내가 그 렌더링을 사용하여 좋은 생각이 없을 것 같아요 그래서 내가 그 표정에 대한 몇 가지 CSS를하고 싶습니다. 모든 도움이 절실히 필요하며, 가능하다면 코드 (특히 필터링 부분)에 불이 들어옵니다.

답변

0

컨트롤러에 하나의 작업이 있고 목록을 렌더링합니다.

예 : 의사 코드로보기

<g:form controller="??" action="??"> 
    <h1>Search</h1> 
    <g:submitButton name="search" value="Search"/> 

</g:form> 
<g:each in="${books}"> 
    <li class="book">Name: ${it.name}, Locale: ${it.isbn}</li> 
</g:each> 

지금 항목을 장식하는 CSS를 li.book을 사용할 수 있습니다에 다음

BookController { 
    def search = {SearchComamnd search -> 

    def books = [] 
    if(search) { 
     books = Book.createCritera().list { 
     and { 
      title(search.title) 
      author(search.title) 
     } 
     } 
    } 

    render [ books:books ] 
    } 

    class SearchCommand { 
    def author 
    def title 
    } 
} 

때를 (완료되지 않음).

+0

@Gonzo 결과를 div 제거했습니다. 무의미하고 IMO 때문에 결과가 양식 외부에있는 것이 바람직합니다 (사용자가 제안한대로) –

+0

사용자가 검색 매개 변수를 입력 할 수 있도록 양식을 추가해야합니다. –

+0

@ 돈 절대적으로 맞습니다 ...하지만 이것은 완전한 (또는 독자적으로 일하는) 것을 의미하지 않습니다. –