2013-02-06 3 views
1
  1. 내가보기 컨트롤러에서의 HashMap를 보내고있다이다 :의 HashMap 컨트롤러의 String 객체

    def list2 = [id:params?.id, title:params?.title, domain:params?.domain, orderOfSubpage:params?.orderOfSubpage] 
    render(view: "list", model: [subpageInstanceList: list, subpageInstanceTotal: list.getTotalCount(), searchParams:list2]) 
    
  2. 내가 컨트롤러에이 HashMap에 돌려 보내는있을 때 테이블 헤더에 사용자가 클릭 :

    def map = params 
    
    0 :

    <g:sortableColumn property="id" title="Id" class="td-id-class subpage-td" params="['searchParams':searchParams]"/> 
    
  3. 나는 플래그가 여기에 설정되어 디버거에서 값을 확인하고 있습니다

    값은 다음과 같습니다

    searchParams={id=, title=, domain=, orderOfSubpage=} 
    
  4. 나는이 이미 문자열 인 '지도'에서 값을 얻으려고 : I는 다시 받고 있어요

    def map2 = params?.searchParams 
    def id = map2?.id //here is an Exception (checked in debugger) 
    
  5. 예외 :

    Class groovy.lang.MissingPropertyException 
    Message No such property: id for class: java.lang.String 
    

내가 수행 할 때 ArrayList가있는과 똑같은 문제가 없습니다. 모든 것이 잘 작동하고 List는 항상 List입니다. 변환/캐스트를 문자열에 매핑하는 이유는 무엇입니까?
질문 : 컨트롤러로 다시 전송 된 객체가 String이거나 적어도 String과 같은 역할을하는 이유는 무엇입니까? http://grails.org/doc/latest/ref/Tags/sortableColumn.html에서

답변

2

:

PARAMS (옵션) - 요청을 포함하는지도 당신은이

매개 변수 : <g:sortableColumn ... params="['searchParams':searchParams]"/>. 그러나 searchParams는 자체 맵이기 때문에 적절한 요청 매개 변수가 아닙니다.

는 아이디, 이름, 도메인처럼 모든 값을 추가하고 orderOfSubpage 명시 적으로 같은 : 심지어

params="[id:searchParams.id, domain:searchParams.domain, ...]" 

나 :

params="${searchParams}" 
관련 문제