2014-12-19 3 views
0

다음과 같은 문제가 있습니다. 편집하려는 엔티티가 있습니다. 그래서 나는 페이지를 보여주고 페이지를 편집하기 위해 탐색한다. 내 엔터티의 id은 과 같습니다. 그런 다음 우리는 다음과 같은 URL을 가지고 있습니다 : app/entity/show/2 ->app/entity/edit/2. 그런 다음 편집 페이지에서 항목을 업데이트하고 양식을 제출 한 후 app/entity/update으로 이동합니다. 내 컨트롤러에서 나는 갱신() 메소드에 대한 다음과 같은 코드가 있습니다grails는 양식 제출 전에 id param을 삭제합니다.

def update(Entity entity) { 
//some code 
} 

내가 디버깅 업데이트 방법 및 그 실체에 포함 된 참조 ID = ID가합니다 (PARAMS에 포함되어 있음을 의미 2 아마 이전 URL 때문에 app/entity/edit/2과 동일). 사실 디버그로 확인하는 경우 params에 있습니다. 그러나 id이 params에있는 경우 Grails가 저에게 적합하지 않은 것을 수행하기 때문에 폼을 제출하기 전에 id를 id에서 제외하고 싶습니다. grails는 DB의 연관과 함께 엔티티를 가져옵니다. 우리가 말할 수 1 협회 한 대일 : 엔티티-N : otherEntity, 일부 otherEntities을 삭제할 수 있습니다 내 편집 페이지에,하지만 이후 ID가 PARAMS에서 오는 기업의, grails는 편집 페이지에서 삭제 된 경우에도 otherEntities을 가져옵니다. 양식 제출 전에 parham에서 엔터티의 id을 제외 할 수 있습니까? 감사합니다.

<g:form url="[resource: empInstance, action: 'update']" method="PUT"> 

내가

<g:form controller="emp" action="update" method="PUT"> 

로 변경하고 현재 ID가 PARAMS 그러나이 포함되지 않습니다 내 edit.gsp에서 UPD

다음 코드가 있었다 코드 :

def update(Entity entity) { 
    //some code 
    } 

이 비어있는 엔티티를 제공합니다.

+2

코드와 관련된 부분을 기입하십시오. –

+0

작업을 실행하기 전에 요격기 http://grails.org/doc/latest/ref/Controllers/beforeInterceptor.html을 통해 처리 할 수 ​​있습니다. – Abs

+0

나는 이것을 얻지 못했다 : "편집 페이지에서 일부 otherEntities를 삭제하는 것이 가능하다."그리고 두 번째 경우에 당신은 리소스를 생략했기 때문에 빈 객체를 얻는다 : empInstance는 id 필드를 url에 추가한다. – dsharew

답변

0

ID를 생략하면 인스턴스를 어떻게 업데이트 할 예정입니까? 당신이 가질 수있는 것은 다른 속성들뿐입니다 - 그것들을 저장할 곳은 어디입니까?

컨트롤러 동작에 인수로 Entity entity을 추가하여 Grails가 인스턴스를 검색하고 있습니다. 그렇게하면 데이터 바인딩 코드는 id 매개 변수를 찾고 요청을 찾으면 요청 클래스를 사용하여 인스턴스를 가져옵니다. 인스턴스를로드하지 않으려면 해당 인수를 제거하고 params으로 직접 작업하십시오.

관련 문제