仅在初始请求时初始化模型值,而不在回发请求上初始化模型值

时间:2013-11-13 11:26:35

标签: jsf-2 postconstruct

我有一个managedbean AddDeviceBean,用于实例化构造函数中屏幕中使用的所有域对象

public AddDeviceBean() {
    device = new DeviceVO();
    deviceacct = new DeviceAccountsVO();
    deviceconfig = new DeviceConfigVO();
    devicecurr =new DeviceCurrencyVO();
    devicelink = new DeviceLinkVO();
    devicetran = new DeviceTranVO();
    devicecd = new DeviceCDVO();
    deviceBlank = new DeviceBlankVO();
    comments = new ArrayList<DeviceCommentsVO>();

}

我有一个DB2序列,其下一个值必须为pageload

上的属性设置

我使用@PostConstruct注释生成下一个值并设置值。

问题是我在屏幕上有commandButton调用同一个bean中的某个方法,并且在提交后调用@PostConstruct两次并调用DB2下一个值

我只需要在页面加载期间获取下一个值,而不是在提交期间

1 个答案:

答案 0 :(得分:1)

当您的托管bean是请求作用域时,确实会发生这种情况。每个HTTP请求都构造一个请求范围的bean。初始请求计为一个请求。表单提交(回发)计为另一个请求。

如果你想让bean在同一个视图中交互时生存,那么你应该把它变成一个视图范围。

@ManagedBean
@ViewScoped
public class AddDeviceBean {
    // ...
}

另见: