フィールドが現在ログインしているユーザーのIDに設定されている「作成」ビューでhiddenFieldを設定しようとしています。「springSecurityService.principal.id」プロパティから取得します。
コントローラーから値を渡すのではなく、テンプレートからのみこれを行うことができるかどうか疑問に思っていました。例えば
<%@ page import="grails.plugins.springsecurity.SpringSecurityService" %>
<% def springSecurityService %>
<html>
...
...
<g:hiddenField name="user.id" value="${springSecurityService.principal.id}"/>
...
このコードを試してみましたが、「プリンシパル」プロパティを参照して NullPointer 例外が発生しました。
これを行う方法はありますか、または「作成」メソッドから現在ログインしているユーザーの ID を明示的に渡す必要がありますか?
注: はい、改ざんされた隠しフィールドを使用して POST リクエストを作成するのは誰にとっても簡単なことです。現在ログインしているユーザーが自分の投稿のみを作成、編集、削除できることを確認するために、コントローラー コードにチェックがあります。私の質問は、現在ログインしているユーザーを 3 つの異なるビューに渡すためにコードを入力する必要がないことに関係しています。