1

私は自分のプロジェクトでSpring 3.0.5RELEASEを使用しています.今、私の要件は、フォームの検証を実行したいということです.私は春に慣れていないので、実行方法がわからず、グーグルで検索しました.その後、休止状態を使用して解決策を見つけました-フォームにデータを入力するたびに、SampleCommand という名前の 1 つのエンティティ クラスにデータが保存され、このクラスには 5 つのフィールドがあります。まず、1 つのフィールドに検証を適用しようとしています。として与えた

@NotNull(message = "The above field must not be blank.")
    private Integer sourceId;

以下はコントローラークラスのコードです

public ModelAndView processForm(@ModelAttribute("reports") @Valid ReportsCommand model, ModelAndView modelAndView,BindingResult result,
            HttpServletRequest request, HttpServletResponse response) throws Exception {


        if (result.hasErrors()) {
           return new ModelAndView(new RedirectView("../pages/report/main.jsp"));
        } 
        else{
           ....
          }

以下はそのフィールドのみのjspコードです。

<form id="report-generate-form" method="post" action="../../reports/html" target="newWindow">
<div class="form-row" style="">
                        <div class="label"><%=Msg.get(MsgEnum.SOURCE_CONFIG_NAME_LABEL)%><em>*</em>
                        </div>
                        <div class="form-row">

                            <select name="sourceId" id="source-dropdown" class="input-field-select mandatory constrained"

                            <select name="sourceName" id="source-dropdown"
                                class="input-field-select mandatory constrained"

                                constraints='{"fieldLabel":"Source Name","mustSelect":"true"}'>
                                <option value="-1">Select</option>
                            </select>
                        </div>
                        <div class="error-container">
                            <div class="error-img"></div>
                            <label class="error"></label>
                        </div>
                        <form:errors path="sourceId" cssClass="error" />
                    </div>
</form>

このように使用すると、アプリケーションは例外なく実行されますが、フォームに入力しているときに、その sourceId フィールドを見逃して送信ボタンをクリックします。その後、検証メッセージが表示されません。メッセージ。下手な英語でごめんなさい。

4

2 に答える 2

0

コントローラーでは、フォーム ポスト メソッドを処理するメソッドは、@ModelAttribute としてマークされたフィールドに @Valid アノテーションを付ける必要がありメソッドにはパラメーターが必要です。次に、以下のような if 条件を確認する必要があります。BindingResult result

if(result.hasError()) {
// return the same view having the form.
} else {
// insert the data in database and return the success view.
}

コントローラーと jsp ファイルをここに表示することもお勧めします。

これがお役に立てば幸いです。乾杯。

于 2012-06-12T06:11:01.113 に答える