当我是Java程序员时,我的典型方法是编写带有getter的POJO,并通过这些getter ${pojo.field}
访问JSP中的字段。
现在我正在尝试使用Scala。 Case类似乎是POJO的一个很好的替代品,但是scala提供了field()
getter而不是JSP所需的getField()
。
那么,如何从JSP访问案例类字段而不为每个字段手动编写def getField = field
?或者也许有更适合我的目的的方法?
答案 0 :(得分:3)
使用scala.beans.BeanProperty注释案例类的字段:
import scala.beans.BeanProperty;
case class Person( @BeanProperty val name : String, @BeanProperty val age : Int);
现在,您的人员课程将采用getName()
和getAge()
以及name()
和age()
等方法。
如果您需要bean设置器,请使用var
s:
class Person( @BeanProperty var name : String, @BeanProperty var age : Int);
(注意:我通常不喜欢创建非可变对象案例类,即使在可变类声明之前声明case
是合法的。)
现在您已经发现已经定义了java void setName( String name )
和void setAge( int age )
的等价物。