如何从 JSP 访问案例 class 的字段?

How to access fields of case class from JSP?

当我是一名 Java 程序员时,我的典型方法是编写一个带有吸气剂的 POJO 并通过这些吸气剂 JSP 访问它的字段 ${pojo.field}.

现在我正在尝试使用 Scala。 Case classes 看起来是 POJO 的一个很好的替代品,但 scala 提供 field() getter 而不是 JSP.

所需的 getField()

那么,如何在不为每个字段手动写入 def getField = field 的情况下从 JSP 访问 case class 字段?或者也许有更适合我目的的方法?

scala.beans.BeanProperty:

注释您案例 classes 的字段
import scala.beans.BeanProperty;

case class Person( @BeanProperty val name : String, @BeanProperty val age : Int);

现在您的 class 将拥有 getName()getAge() 以及 name()age() 等方法。

如果您需要 bean setter,请使用 vars:

class Person( @BeanProperty var name : String, @BeanProperty var age : Int);

(注意:我通常不喜欢将不可变对象设为 classes,即使在可变 class 声明之前声明 case 是合法的。)

现在您会发现 java void setName( String name )void setAge( int age ) 的等价物已被定义。