JSTL将字符串视为表达式语言

时间:2014-07-23 23:56:07

标签: java jsp java-ee jstl el

我有一个教师豆,其中包含他们希望如何看待学生的名称格式。名称。我使用EL访问字符串,如下所示。老师已经参与了请求。

<c:out value="${requestScope.teacher.nameFormat}"/>

名称格式的值是表达式语言,如下所示。

1. ${student.lastName}, ${student.firstName}
2. ${student.lastName}, ${student.firstName.substring(0,1)}

我希望使用教师选择的名称格式显示学生姓名。

1. Doe, John
2. Doe, J.

但我现在得到的结果就是名称格式本身。

1. ${student.lastName}, ${student.firstName}
2. ${student.lastName}, ${student.firstName.substring(0,1)}

2 个答案:

答案 0 :(得分:1)

在您的域内创建一个方法

class Person{

  public String getPrettyName(){
    //operate and return
  }
}

和JSTL

<c:out value="${requestScope.teacher.prettyName}"/>

${requestScope.teacher.lastName}, ${fn:substring(requestScope.teacher.firstName, 0, 1)}

答案 1 :(得分:0)

无需使用fn:,所有与String相关的方法都可以直接使用,如下所示:

使用:

<c:out value="${requestScope.teacher.lastName}"/>
<c:out value="${requestScope.teacher.firstName.substring(0,1)}"/>

它应该工作。此外,如果您要保留requestScope,它将查找特定值以仅在该特定范围内评估EL。因此,请确保您的老师在请求范围内可用。

相关问题