0

Roo プロジェクトで、ユーザーがパスワードを変更できるフォームを追加したいと考えています。フォームに現在のパスワード、新しいパスワード、繰り返しのパスワードの 3 つのフィールドが必要なため、フィールドとその検証の不一致により、アカウント データを保持するために使用するエンティティを使用できません。

--backingTypeコントローラーをスキャフォールディングするためのフォームとして任意のクラスを使用できるようですが (の経由web mvc scaffold)、何らかの理由でカスタム フォーム フィールドでは機能しません。

私のプロジェクトは次のように構成されています:

project --topLevelPackage com.test --projectName temp --java 6 --packaging JAR
persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY 
web mvc setup

アカウント エンティティ:

entity jpa --class com.test.domain.Account
field string --fieldName name
field string --fieldName password

パスワード変更フォーム:

class --class ~.form.ChangePasswordForm
field string --fieldName currentPassword
field string --fieldName newPassword
field string --fieldName repeatPassword

これにより、期待どおりにコントローラーとビューが生成されます。

web mvc scaffold --class com.test.web.AccountController --backingType ~.domain.Account

これにより、空のコントローラーのみが作成され、ビューはまったく作成されません。

web mvc scaffold --class com.test.web.ChangePasswordFormController --backingType ~.form.ChangePasswordForm

では、私の質問は、2 番目のケースで Roo がコントローラー/ビューをスキャフォールディングしない理由と、Roo でこのシーンを処理する最善の方法は何かということです。

4

2 に答える 2

1

web mvc scaffoldRoo の JPA 統合を使用するドメイン モデルの CRUD コントローラーを足場にするように設計されています。

この CRUD Roo を実装するには、モデル オブジェクトを永続化する方法を知っている必要があります。

@RooJpaEntityつまり、 で注釈が付けられたクラスを として使用する必要があります--backingType

于 2013-11-04T06:25:26.940 に答える