質問

Struts 1.2.4を使用して、この巨大なレガシーJava Webアプリを継承しました。 ActionFormsに関して特定の質問があります。それらのいくつかは文字列プロパティのみを持ち(数値の場合も)、一見適切なタイプ(整数、日付、文字列など)を使用します。ここでのベストプラクティスは何ですか?

また、プロパティのタイプが整数で、ユーザーが入力した値が整数値でない場合、Strutsはこれを静かに飲み込み、プロパティを設定しません。どうしたの?

役に立ちましたか?

解決

Struts 1.2xの場合、ユーザーがHTMLフォームで値を入力または選択し、Struts HTMLタグによってActionFormインスタンスに自動的に入力されるプロパティは、文字列またはブール値である必要があります。ただし、ActionFormがプロパティをアプリケーションにとってより意味のある型として返すgetterメソッドを持たない理由はありません。日付。

他のヒント

自分でいくつかの検証を行う場合(または1.2より後のストラットからリファクタリングされたストラットバリデータ機能を使用する場合)、引用する正確な理由でStringプロパティが必要になります:整数に数値を格納したらまたはint値の場合、それらは数字または「何もない」必要があります 。 -それ以外:「たくさん」をどのように保存しますか(文字通り)Integerプロパティ?

クライアント側の検証(Javascriptなど)は引き続き機能しますが、これに依存する必要はありません。

無効な数値を入力して、ユーザーに空白のフィールドが表示されても問題ない場合、Date-、Integer-、Whatever-Propertiesに値を保存できます。エラーメッセージとともに元の値を表示する場合は、Stringプロパティが必要です。

これには、手動で変換を行うために必要な価格があります。 Struts 1.2は非常に古いので、アプリケーションインフラストラクチャを徐々に最新のテクノロジーに置き換え、2つのテクノロジー(古い&新しい)を同時に使用して、古い部分が十分に小さくなるまで(または十分に重要ではありません)削除されます。

nb-数値として受け入れたい値をより詳細に制御できます。古いStrutsクレジットカードバンキングアプリケーションを覚えています。このアプリケーションでは、3e2ユーロをカードから引き出したい場合に期待される結果をマネージャーに尋ねました。彼らは300(Strutsが変換されたように)とは言わなかったが、エラーを選んだ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top