小编Sha*_*eil的帖子

如何在JSPX中处理Optionals?

我们有几个具有可空字段的域对象.我们已经读过hibernate需要'raw'对象来正确映射它,所以我们的getter返回选项.我们的域对象如下所示:

public class User {

    private String firstName;

    private User boss;

    public Optional<String> getFirstName(){
        ....
    }

    public Optional<User> getBoss() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是现在我们在.jspx文件中解析/绑定这些字段时遇到了问题.(无论是显示还是表单输入字段.)对于基本类型和字符串,我们可以通过定义自定义OptionalToStringConverter来绕过它.

还有一个问题是对其他域对象的可空引用.

我们考虑了几个选项,但对它们中的任何一个都不满意:

  • 为所有域对象和类型定义自定义转换器(会导致许多转换器,并且似乎不适用于输入字段)
  • 在每个域对象上定义可选和非可选的getter(1.重复代码,2.我们想要清楚地指示可空字段,3.不同地访问可选字段和非可选字段感觉不干净)
  • 定义一个'show command',它返回'raw'值或null(重复代码)
  • 定义处理选项的自定义标记(当域对象变为非可选时,我们必须更改标记x)

我们想知道在jspx中是否有一种很好的方法来解决选项.

java spring jsp jspx optional

5
推荐指数
1
解决办法
78
查看次数

标签 统计

java ×1

jsp ×1

jspx ×1

optional ×1

spring ×1