2012-01-03 4 views
18

Sự trở lại đó có cần thiết không? Giả sử nó đang ở giữa một hành động.Tôi có cần trả về "kết xuất" trong Grails không?

render(contentType:'text/json', text: ['success': true] as JSON)  
return 
+0

@Don - Sự khác nhau giữa tôi và chỉnh sửa của bạn là gì? – RyanLynch

+0

có chức năng, chúng có thể giống nhau, nhưng tôi nghĩ nó dễ đọc hơn nhiều. Nếu bạn không đồng ý, vui lòng hoàn nguyên thay đổi của tôi –

Trả lời

27

Nếu bạn không quay lại, bất kỳ mã nào sau render cũng sẽ được thực hiện, thường không phải là thứ bạn muốn, ví dụ:

def someAction = { 

    if (someCondition) { 
    render view: 'success' 
    // if we don't return execution would fall through to the code below 
    return 
    } 

    log.error 'something went wrong' 
    render view: 'error' 
} 

Tất nhiên, nếu bạn sử dụng phong cách này để thay thế, không cần phải quay trở lại

def someAction = { 

    if (someCondition) { 
    render view: 'success' 

    } else {  
    log.error 'something went wrong' 
    render view: 'error' 
    } 
} 

Nếu một hành động chỉ có một điểm xuất cảnh, không cần phải quay trở lại sau khi render

def someAction = { 
    render view: 'success' 
} 

Chỉ cần nhớ rằng mã sau render sẽ được thực thi nếu bạn không trả lại.