私は JSF の初心者であり、次のシナリオで最も洗練されたソリューションを
見つけようとしています: UserMB と呼ばれるユーザー管理 Bean があるとします。
@ManagedBean
public class UserMB {
private User user;
private List<User> users;
// getters and setters here
public void addUser(User user){
// do add user logic here
}
public List<User> listAllUsers(){
// do list All users logic here
}
@PostConstruct
private void init(){
// populate List<user> users - for the listAllUsers scenario
}
}
listAllUsers() メソッドに直接送信するフォームがなく、ページ list-all-users.xhtml を開いたときにすべてのユーザーを表示したいとします。addUser.xhtml からマネージド Bean をヒットすると、DB に対してクエリが実行され、すべてのユーザーがロードされます。これは、Bean が listAllUsers() メソッドまたは addUser() メソッドを使用するかどうかを認識できないためです。
この機能を 2 つのマネージド Bean に分割する必要がありますか?
その場合、「ユーザー」ビジネスを処理するためにいくつかのマネージド Bean を作成する必要があるためです (つまり、Struts2 では、すべてのユーザー インタラクションを処理する 1 つのアクションしかありません)。
PSゲッターメソッドでリストにデータを入力する解決策があることは知っていますが、これを行わないようにアドバイスするBalusCの記事を読みました...