-1

私はStrutsを初めて使用します。情報をキャプチャするために、モデルcourseBeanをビューに提供します。

正しいフォームで正しい情報を入力すれば完璧に動作します。そうしないと、間違った形式で入力すると、例外がスローされます。

たとえば、を入力abcdしました。形式に変更できないcourseBean.startDateため、例外がスローされます。abcdDate

それらの例外を防ぐ方法はありますか?または、新しいBeanクラスを作成し、そのクラスのすべての属性をStringに設定する必要がありますか?

            <!--Title-->
            <div class="control-group">
                <label class="control-label" for="inputEmail">Title:</label>
                <div class="controls">
                    <input type="text" name="courseBean.title" placeholder="Title" value="<s:property value="courseBean.title" />"/>
                </div>
            </div>

         <!--Start Date-->
        <div class="control-group">
            <label class="control-label" for="inputPassword">Start Date:</label>
            <div class="controls">
                <input type="text" readonly="readonly" name="courseBean.startdate" placeholder="Start Date" value="<s:property value="courseBean.startdate" />" />
            </div>
        </div>

この質問は、Beanへの入力の自動データ形式規則に焦点を当てています。

たとえば、courseBean.feeにマップするテキストフィールドに「」WARNING: Error setting expression 'courseBean.fee' with value '[Ljava.lang.String;@1b40489'を入力した場合

4

1 に答える 1

1

まず、ユーザーがフォームに入力したデータを検証する必要があります。これは、アノテーション(セクション検証アノテーション)XML、またはアクションの単純なvalidate()メソッドを使用して、さまざまな方法で実行できます。公式のドキュメントでは不十分な場合は、Struts2を使用してデータを検証する方法の例をインターネットでたくさん検索できます。

次に、jspに関連するものを追加します。Struts2には、多くのものをレンダリングし、アクションをjspsと通信するのに役立つタグが組み込まれています。フォームについて話している場合<s:form>、たとえば、アクションのURLをHTMLフォームにハードコーディングしないようにするのに役立つ場合や<s:textfield>、レンダリング検証エラーに役立つ場合があります。

ページの作成にTwitterBootstrap表記を使用することが問題である場合は、HTMLをそのCSSフレームワークで使用できるようにするプラグインがあります。

編集

WARNING: Error setting expression 'courseBean.fee' 
with value '[Ljava.lang.String;@1b40489'

String []アプローチの問題は、おそらくではないフィールドにを割り当てようとしていることですString [](おそらくそれはDateです)。オブジェクトに変換するには、を取得しStringて解析する必要がありDateます。また、 Struts2での作業<s:textfield>方法がわからない場合は、このチュートリアルを参照してください。それはあなたに役立つかもしれません。<s:form>

于 2012-12-11T12:10:48.433 に答える