gpt4 book ai didi

java - 在 JSF 中使用构建器模式?

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:58 24 4
gpt4 key购买 nike

我只是想将我的一个小型桌面应用程序移植到网络上。自从几天以来,我一直在尝试找出如何在 JSF 中使用构建器模式(我已经有了)?或者我是否必须重构为 Bean 实体并且无法使用 Builder?

考虑以下代码:

public class MyFacade {
private MyClass bar;

publich save() {
crudService.persist(bar);
}
}


<h:inputText id="name" value="#{MyFacade.bar.property}" />
//submit button

当然,我希望将文本字段值存储到我的数据库/实体中。如果您有普通的后端 bean,这很容易。

但是如果我创建如下所示的对象会怎样?

MyClass newObject = MyClass.Builder("mandatory field").setOptionalFields("optional field").build();

如果有的话,我如何在 jsf 中使用它?

非常感谢

最佳答案

如果我理解正确的话,您应该在 JSF 应用程序中引入另一种类型的 bean,只是为了与您的 View 进行交互,并让您的外观 (dao) bean 保持原样。你最终会得到这样的结果:

@RequestScoped
public class YourBean{

@Inject
private MyFacade facade;

//bean created with builder
private MyBean bean;

public String someMethodExecutedwithEL(){
//build your object here and save it with the dao layer
facade.save(objectFromBuilder);
}
@PostConstruct
public void init(){
//create your bean with builder pattern
}
}

上面的示例当然只是一个潦草的想法,重点是没有什么可以阻止您使用构建器模式创建对象,只需引入另一层来分离关注点即可。

编辑:

如果您想在 jsf 页面上使用对象之前创建对象,您可以添加注释为 @PostConstruct 的方法 (也更新了代码示例)

可能性是无限的。

提示 - 考虑使用标准命名约定和常识来命名您的类和变量。

关于java - 在 JSF 中使用构建器模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9174910/

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