2011-07-05 12 views
0

Java用の非常に単純なフォーム処理APIを探しています。 APIは、理想的には、フォーム入力フィールドがBeanプロパティに対応し、すべての豆がjavax.Validation注釈を有するであろうと仮定:Java用のシンプルなフォーム処理API

  • 豆を表示するHTMLフォームとして
  • 、適用可能な場合、ネストされたオブジェクトを含むBeanを、移入します
  • 検証の注釈を使用して入力を検証する
  • エラーがある場合は、フォームの上部にエラーを表示し、エラーフィールドを強調表示します。
  • さらに

:私はレガシーアプリで働いていますので、私は、アプリケーション全体のフレームワークに購入する必要はありませんでした場合

  • それはいいだろう。
  • もっと複雑なユースケースの設定を許可しますが、デフォルトでは規約を使用するだけです。

ボーナス:

  • はあまりにJavaScriptクライアント側の検証を生成します。

注:これには複数の異なるライブラリが必要な場合は、それでも問題ありません。

更新:

私は私が探していたものを見つけたことがない、と春に移行することはオプションではありませんでしたので、私は先に行って、自分のソリューションを巻か。これは、愛着的に、java in jailsと呼ばれています(ゆるやかにレール形状の処理をモデルにしています)。それはあなたにシンプルな(そしてかなりの)フォーム作成、クライアントとサーバー側の検証、そしてオブジェクトマッピングへのパラメータの要求を与えます。設定は必要ありません。

例豆:

public class AccountForm { 
    @NotBlank(groups = RequiredChecks.class) 
    @Size(min = 2, max = 25) 
    private String name; 
//... 
} 

例フォーム:

<%@ taglib uri="http://org.jails.org/form/taglib" prefix="s" %> 
<s:form name="accountForm" action="/jails-demo/jails" label="Your Account Details" style="side"> 
    <s:text name="name" label="Name" size="25" /> 
    <s:text name="accountName" label="Account Name" size="15" /> 
    ... 
</s:form> 

例の検証とマッピング:

SimpleValidator validator = new SimpleValidator(); 

if ("submit".equals(request.getParameter("submit"))) { 
    Map<String, List<String>> errors = validator.validate(AccountForm.class, request.getParameterMap()); 

    if (errors != null) { 
     AccountForm account = validator.getMapper().toObject(AccountForm.class, request.getParameterMap()); 
     //do something with valid account 
    } else { 
     SimpleForm.validateAs(AccountForm.class).inRequest(request).setErrors(errors); 
     //handle error 
    } 
} else { 
    SimpleForm.validateAs(AccountForm.class).inRequest(request); 
    //forward to formPage 
} 

これは、フォームはjQueryのを使用してクライアント側の検証で、次のようになります(Position Absoluteによって提供):

+0

私は通常、上記のように完全なソリューションを提供していません。なぜあなたはあなたの "フォーム"を開発し始めていないのですか? – CoolBeans

+0

申し出てくれてありがとう...私は実際にコーディングヘルプを探していませんでした。プラグインできるだけの既存のソリューションを探していました。 –

答えて

1

私はこの機能のほとんどを持っていて、フレームワークではないものを見つけるとは思わない。

Spring MVCをお勧めします。これは、従来のアプリケーションで簡単にプラグインできます。上記のすべてをサポートしています。

こう-それは、自分がされないことが難しいのいずれか:リクエストにあなたのオブジェクトを埋めるために

  • 使用BeanUtils.populate(bean, request.getParameterMap())手動
  • 使用javax.validation.*パラメータ - here is howを。各エラーに対して、後でエラーとして表示できるリクエスト属性を追加します。

手動でhtmlコードを書く必要があります。

+0

BeanUtils.populate(bean、request.getParameterMap())...これは戦闘の半分です。それはストリング - >プリミティブ - >ストリングの在庫変換器と一緒に来るのですか、それともあなた自身で書く必要がありますか?残念なことに、HTMLを書くことは、私が自分自身をやらなければならないことを回避しようとすることに最も興味を持ったことでした。 –

+0

それを修復する。私は標準的なユースケースすべてのストックコンバータがあることを知っています、あなたは必要に応じて自分で作成することができます。再度、感謝します! –