2012-05-04 8 views
0

+形休止春+ Iは、Userエンティティ持っ

@Controller 
public class HomeController { 
@RequestMapping("/addUser") 
public String showHomePage(Map<String, Object> map) { 
    map.put("user", new User()); 
    return "addUser"; 
} 

とフォームJSPファイル内を

<form:form method="post" action="add" commandName="user"> 
    <form:input path="name"/> 
    <form:input path="password"/> 
    <form:input path="confirm-password"/> 
</form:form> 

何があるため、このフォームはエラーを生成しませんconfirm-passwordフィールドはUser.classです。もちろんconfirm-passwordフィールドを@TransientUser.classに追加することもできますが、フォームにcaptchaフィールドを追加したい場合はどうなりますか?フォームにフィールドを追加する別の方法はありますか?

+1

を参照してください。http://stackoverflow.com/questions/5536024/spring-mvc-requestparam-validation – axtavt

答えて

0

フォームエンティティとしてモデルを使用することはおすすめできません。ビューからデータを取得するためのBeanまたはフォームクラス、モデルのデータを取得する必要があります。

理由は異なる責任を持ち、異なるクラスにマッピングする必要があるということです。それらはしばしば非常によく似ていますが、その分離によって、より洗練されたコーディングが促進され、セキュリティ違反が回避されます。たとえば、ユーザーは、リクエストタンペア(fire bugなど)を使用してビューからモデル変数を使用できます。

これらの小さな違いは、上に挙げたようなもので、別のクラスの作成を正当化するものです。

+1

たくさんのクラスが浮かび上がることを避けるために、クラスに注釈を付けるというこの概念があり、両方の目的に使用します。コンバージョンの準備には多くのコードがあります。再びその選択肢。 – raddykrish

+0

私はあなたに同意します、ここで考慮する他の変数がありますが、IMHO私は標準的なソリューションでその分離を行います。 – eduardohl

関連する問題