Шов - понимание объема страницы и области разговора

Я до сих пор запутался в PAGE и CONVERSATION (временная) область. Может быть, я получу некоторую помощь здесь. Насколько я знаю, переменные выводятся в PAGE Область действия до тех пор, пока пользователь отправляет только одну и ту же страницу. Временный CONVERSATION область вместо этого даже переживает перенаправление на следующую страницу. Вот небольшой пример с двумя эффектами, которые меня смущают:

Во-первых, компонент и выделения в CONVERSATION сфера и tempUser данные отображаются на странице JSF. Но в методе сохранения, вызываемом с этой jsf-страницы, tempUser нулевой. Зачем?

Во-вторых, если я сделаю то же самое, но поменяю компонент и области @In/@Outs на PAGE сфера, tempUser правильно вводится при обратной передаче - но не сохраняется, по любой причине, хотя даже super.update()-метод на userHome вызывается. Или есть проблема в использовании homeEntities таким способом (идея заключается в том, чтобы использовать их только в качестве оболочки DAO)?

@Name("userAction")
@Scope(ScopeType.CONVERSATION)
public class UserAction implements Serializable {

    private static final long serialVersionUID = -4852371546895918692L; 

    @In(create = true)
    private UserHome userHome;

    @Out(scope = ScopeType.CONVERSATION)    
    @In(required = false,scope = ScopeType.CONVERSATION)
    User tempUser;

    @RequestParameter
    private Long userId;

    @Factory("tempUser")        
    public User getUser() {                     
        if (tempUser == null) {
            userHome.setUserId(userId);
            tempUser = userHome.getInstance();
            userHome.clearInstance();
        }
        return tempUser;        
    }

    public void save() {    
        userHome.setInstance(tempUser);     
        userHome.update();
    }
}

В xhtml содержится форма a a:

<a:commandButton
  id="update"
  styleClass="button admin" 
  action="#{userAction.save}" 
  value="#{messages['user.action.update']}"/>

Спасибо за ответы. Извините, если это две проблемы в одной.

0 ответов

Другие вопросы по тегам