1

struts2データモデルを使用してリクエストパラメータを受け入れています。ユーザーが入力要素に値を入力しない場合、モデルクラスの対応するプロパティは ""に設定されますが、""ではなくnullにします。これが私のコードです:

class User{
    private String userName;
    private String userId;

    //setter & getter omitted
}

class UserAction extends ActionSupport{
      private User user;
      //setter & getter omitted

 }

クラスでUserActionは、ビジネス検証などを行う必要があるかもしれません。ステートメントlikを使用するだけです。if(user.getUserId() !== null)これで、ユーザーが何も入力しなくても、この条件はtrueを返します<input type="text" name="user.userId" />。多分私はこのように書くことができます:if(user.getUserId() != null && !"".equals(user.getUserId()))、それは少し疲れます、そして私のコードにはこのような場所がたくさんあります、私はこれを達成するための便利な方法が欲しいです、フィルターはこれを行うことができますか?既存のフィルターまたはインターセプターはありますか?ありがとう。

4

1 に答える 1

1

これを行うには、より抽象的で、オブジェクト指向で、フレームワークに依存しない方法を選択しないのはなぜですか?

class User{
    private String userName;
    private String userId;
    //setter & getter omitted

    public boolean isEmpty() {
       return (userId==null || "".equals(userId));
    }
}

/* somewhere in your Java code: */
if (!user.isEmpty()) { 

<!-- somewhere in your JSP code: -->    
<s:if test="!user.empty()" >

あるいは、値が, (またはその逆) であってもgetters を返すように変更することもできますが、通常、この強制は適切ではありません。nullempty String

于 2013-03-19T08:51:35.123 に答える