13.4. Controller オブジェクト
Controller クラスとそのサブクラス (EntityController、 HibernateEntityController、 BusinessProcessController) は Seam Application Framework のオプションとなる部分です。よく使用される組み込みのコンポーネントやコンポーネントメソッドへの便利なアクセス方法を提供します。このクラスを使用するとキーストロークを節約でき、また新しいユーザーにとっては Seam に組み込まれている豊富な機能を探る素晴らしい足掛かりとなります。
たとえば、
RegisterAction (Seam 登録のサンプルより) は次のようになります。
@Stateless
@Name("register")
public class RegisterAction extends EntityController implements Register {
@In private User user;
public String register() {
List existing = createQuery("select u.username from
User u where u.username=:username").
setParameter("username",
user.getUsername()).getResultList();
if ( existing.size()==0 ) {
persist(user);
info("Registered new user #{user.username}");
return "/registered.jspx";
} else {
addFacesMessage("User #{user.username} already exists");
return null;
}
}
}