Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有可计算或可派生属性的JavaBean_Java_Jsp_Spring Mvc_Javabeans - Fatal编程技术网

具有可计算或可派生属性的JavaBean

具有可计算或可派生属性的JavaBean,java,jsp,spring-mvc,javabeans,Java,Jsp,Spring Mvc,Javabeans,最近,我在一个web应用程序中遇到了一个场景,其中我有一个javabean,它有一个额外的属性,可以根据其他属性进行计算。例如,我可能很想编写这个javabean(这样做是为了简单和清晰) 第一个问题:在bean中添加一些行为是一件坏事吗 第二个问题和更多与SpringMVC相关的技术:如果我想在jsp中显示该方法的结果,我该怎么做 通过谷歌搜索,我找到了几种实现它的方法 由于应用程序架构的原因,我不能使用NOR2或3 我还考虑了创建属性calculateable作为另一个属性,并在g

最近,我在一个web应用程序中遇到了一个场景,其中我有一个javabean,它有一个额外的属性,可以根据其他属性进行计算。例如,我可能很想编写这个javabean(这样做是为了简单和清晰)

第一个问题:在bean中添加一些行为是一件坏事吗

第二个问题和更多与SpringMVC相关的技术:如果我想在jsp中显示该方法的结果,我该怎么做

通过谷歌搜索,我找到了几种实现它的方法

由于应用程序架构的原因,我不能使用NOR2或3


我还考虑了创建属性calculateable作为另一个属性,并在get访问器和行为中进行计算。但我想这不是一个好方法,因为“get”是一个访问值而不是计算值的方法。两件不同的事情,一个方法应该总是按照它说的去做。

为什么不作为一个只读属性(getter而不是setter)来做呢
public int getDif()
。由于应用程序体系结构的原因,我不能使用nor 2或3,我不知道使用scriptlets而不是EL(此处有更详细的解释:)违反规则,即使知道这是当前的Java web应用程序视图技术,所以看起来您的应用程序结构太旧了,如果你不能改变这一点,那么你就注定要失败:(.回到你的问题上来,如果
a
b
可以随时改变,并且
getC()
(而不是
diff
)必须始终返回
a-b
的结果,然后保持这种方式。但是,请坚持问题。在bean中使用不同于常规琐碎设置器或getter的方法是不好的设计?我不知道只读道具。在get方法中,如果您进行计算,为什么仍将其称为“get”?
class DTO {
    private int a;
    private int b;

   // setters and getters for a and b
    public int dif () {
         return a - b;
    }
}