에서 컨트롤러 액세스 변수 I는 사용자가 현재 사용할 수있는 모든 역할과 사용자의 목록을 가져옵니다 index()
을 시작으로 다음 Grails의 컨트롤러Grails에 - GSP
class UserController {
def userService
def roleService
def index() {
def roles = roleService.listRoles()
[roles: roles]
}
def userDetails() {
[user: userService.getUser(params.id), role:params.role]
}
def updateUser() {
def user = userService.getUser(params.id)
if (!(params.username)) {
flash.message = "You have to enter a username!"
redirect(action: "userDetails")
}
else {
user.username = params.username
user.person.title = params.title
user.person.given = params.given
user.person.middle = params.middle
user.person.family = params.family
userService.updateUser(user)
redirect(action: "index")
}
}
}
있습니다. 사용자는 userDetails()
-action에 링크 된 특정 사용자를 선택할 수 있습니다. 사용자의 id
에 대한 정보를 params.id
, 사용자 역할 이름을 params.role
으로 검색합니다.
userDetails.gsp
에서 사용자는 일부 사용자 속성을 업데이트 할 수 있습니다. 그러나 사용자 이름을 입력하지 않으면 userDetails.gsp
으로 리디렉션되어야합니다. (나는 이것을 gsp에서 required
-attribute로 확인할 수 있습니다. 기능을 이해하는 것입니다.
-action을 사용할 때 두 개의 매개 변수가 gsp로 전달됩니다. . 하지만 이제는 리디렉션을 할 때이 정보에 액세스하는 방법을 알지 못합니다. 결과적으로 userDetails.gsp
을 렌더링하면 user
및 role
과 관련된 필수 정보로 오류가 발생합니다.
도움이 되었으면 좋겠습니다.
효과가 있습니다. 실제로 나는'userDetails()'에서'params'를 검색 할 수 있도록'redirect action : "userDetails", params : [id : params.id, role : params.role] -동작. 고맙습니다! – gabriel
'params'가 작동하는지 100 % 확신하지 못했습니다. 내 대답을 자신의 정보로 업데이트했습니다. –