1

解像度

私は今、これを機能させることができました。

nullの結果を引き起こしたのは私自身の見落としでした。フォームを間違ったコントローラーメソッドにマッピングしていたことを指摘してくれた@WillKeelingに感謝します。

フォームを送信するための新しい Role オブジェクトを作成するのではなく、(理由は不明ですが) User オブジェクトを送信するように求めていました。

以下の私の作業中のJSPとコントローラー:

<form:form method="POST" action="/users/${user.username}/addRole" modelAttribute="newRole">
    <div class="input-group">
        <span class="input-group-addon">Roles</span>
        <form:select class="form-control" path="rolename" multiple="false">
            <form:options items="${roles}" title="rolename" itemValue="rolename" itemLabel="rolename" />
        </form:select>
        <span class="input-group-addon"><input type="submit" value="Add Role" class="btn btn-xs btn-warning"/></span>
    </div>
</form:form>

コントローラーのマッピング

@RequestMapping(value = "/{username}/addRole", method = RequestMethod.POST)
public String addUserRoles(@ModelAttribute("newRole") Role  newRole, @PathVariable("username") String username) {
    System.out.println(newRole.getRolename());
    return "redirect:/users/" + username;
}

元の質問

ここで明らかな何かが欠けているかもしれませんが、誰かが助けてくれることを望んでいました.

私が働いているチームのアクセス管理システムを構築しています。バックエンドでリポジトリに処理できる新しい「ロール」オブジェクトを送信する必要がある jsp (以下のコード) にフォームがあります。

ただし、現時点では、送信をクリックすると、値が「null」であるというログ レポートが報告されます。誰かがこれがなぜなのかを明らかにしてもらえますか?

JSP のフォーム

<form:form method="POST" action="/users/${user.username}/addRole" modelAttribute="user">
    <div class="input-group">
        <span class="input-group-addon">Roles</span>
        <form:select class="form-control" path="roles" multiple="false">
            <form:options items="${roles}" title="roles" itemValue="rolename" itemLabel="rolename" />
        </form:select>
        <span class="input-group-addon"><input type="submit" value="Add Role" class="btn btn-xs btn-warning"/></span>
    </div>
</form:form>

コントローラ

元のパスは /users で、次のコントローラーがあります。

@RequestMapping(value = "/{username}/addRole", method = RequestMethod.POST)
public String addUserRoles(@ModelAttribute("user") User user) {
    System.out.println(user.getRoles());
    return "redirect:/users/" + user.getUsername();
}

コンソールでの結果

Role [rolename=null]
4

0 に答える 0