且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在数据库中存储http会话属性

更新时间:2023-02-15 11:06:26

需要覆盖通过注入的http会话值传递的save方法:

Need to override the save method passing the injected http session value :

@ManagedBean(name = "riscosController")
@ViewScoped
public class RiscosController extends AbstractController<Riscos> {

    @EJB
    private RiscosFacade ejbFacade;

    @Inject
    @SessionChave
    private String iSessionChave;

    private String sessionChave;
    private UorPosController matriculaController;
    private UorPosController informanteController;

    public String getSessionChave(String chave) {
        if (sessionChave.isEmpty()) {
            sessionChave = iSessionChave;
        }
        return sessionChave;
    }

    public void setSessionChave(String sessionChave) {
        this.sessionChave = sessionChave;
    }

    @PostConstruct
    @Override
    public void init() {
        super.setFacade(ejbFacade);
        FacesContext context = FacesContext.getCurrentInstance();
        matriculaController = context.getApplication().evaluateExpressionGet(context, "#{uorPosController}", UorPosController.class);
        informanteController = context.getApplication().evaluateExpressionGet(context, "#{uorPosController}", UorPosController.class);
        sessionChave = "";
    }

    @Override
    public void saveNew(ActionEvent event) {
        this.getSelected().setObs(this.getSessionChave(sessionChave));
        super.saveNew(event);
    }

}