gpt4 book ai didi

java - 具有动态属性的对象的添加/编辑操作

转载 作者:行者123 更新时间:2023-12-01 15:23:03 26 4
gpt4 key购买 nike

我需要帮助来实现 CRUD 操作。我的应用程序包含一个对象表。每个对象都由属性(值)列表来描述。根据属性类型,使用自定义 JSF 编辑器修改一个属性。

当用户添加新帐户时,编辑者列表根据对象的类型确定,并使用custom:include以表单形式显示。标签。此自定义标签用于动态包含编辑器 <custom:include src="#{editor.component}"> 。组件属性指向 JSF 编辑器的位置。

每个编辑器都有一个实现 ValueHolder 的托管 bean接口(interface)并继承 AbstractEditor类(class)。 AbstractEditor 包含一个 updateEditor 方法。

public interface ValueHolder {  
String EDITOR_VALUES = "editorValues";
public Object getValue();
}

我使用 session 映射,以编辑器名称作为键,以编辑器值作为值。当用户修改属性时,将调用 updateEditor 方法,并使用编辑器的新值更新 map 。

问题在于编辑器背后的 bean 范围。如果我使用@SessionScopedbeans,初始化编辑器的代码不会再次调用,我无法处理添加/编辑操作。 @SessionScoped 仅适用于添加。我尝试过使用 @RequestScoped,但是 Bean 被频繁调用,我不知道这是否真的很好。

我使用 JSF2、PrimeFaces 3.0.M4 和 Spring Web Flow 进行导航。

最佳答案

您是否考虑过使用@ViewScoped bean?只要您继续返回同一页面, View 作用域 bean 就会保留在作用域内。这看起来像你正在做的事情。

或者,如果您使用 CDI,则可以使用 @ConversationScoped 在执行更新时将 Bean 保持在范围内。这有一个明确的开始和结束。这将使您能够确定 Bean 何时超出范围。

关于java - 具有动态属性的对象的添加/编辑操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com