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

Java JSTL将字符串视为表达式语言,java,jsp,jakarta-ee,jstl,el,Java,Jsp,Jakarta Ee,Jstl,El,我有一个教师bean,其中包含他们希望如何查看学生姓名的名称格式。我正在使用EL访问字符串,如下所示。老师已经在请求中设置好了 <c:out value="${requestScope.teacher.nameFormat}"/> 我想用老师选择的名字格式显示学生的名字 1. Doe, John 2. Doe, J. 但我现在得到的结果是名称格式本身 1. ${student.lastName}, ${student.firstName} 2. ${student.lastNam

我有一个教师bean,其中包含他们希望如何查看学生姓名的名称格式。我正在使用EL访问字符串,如下所示。老师已经在请求中设置好了

<c:out value="${requestScope.teacher.nameFormat}"/>
我想用老师选择的名字格式显示学生的名字

1. Doe, John
2. Doe, J.
但我现在得到的结果是名称格式本身

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

在域内创建一个方法

class Person{

  public String getPrettyName(){
    //operate and return
  }
}
关于JSTL

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

无需使用
fn:
,所有与字符串相关的方法直接工作,如下所示:

使用:



它应该会起作用。此外,如果您保留requestScope,它将只在该特定范围内寻找特定值来评估EL。因此,请确保您的老师在请求范围内。

你好,Jigar Joshi,谢谢您的回复。实际上,我的请求中有一个教师bean。这就是我访问它的原因,如问题所示。但是就像我说的,它会返回字符串本身。是的,我是说,如果你修改你的Bean类来包含这个方法,并以这种方式调用它,并在java代码中处理子字符串部分,这将非常容易。我真的希望字符串被视为EL来显示格式化的学生姓名。如果没有别的办法,我会试试你的建议。非常感谢。为什么fn:?完全不需要达到OP的要求。@Shailesh它说了什么?嗨,谢谢fn:建议。我更新了这个问题,使我真正的问题更清楚。但是学生名字和姓氏的值在哪里设置?张贴与您的教师班级相关的代码,我想知道教师班级是否有任何与学生相关的字段?或者你将如何获得与学生相关的名字和姓氏?一个班级有一个老师,那么学生就属于一个班级。有一个CLASS_STUDENT表,其中包含学生到类的映射。我明白了我想要达到的目标是不可能的。这就是为什么正如Jigar Joshi所建议的那样,我用Java进行了格式化。因为您已经接受了其中一个答案,所以您的问题已经解决了,或者根据您的评论,我需要努力理解它并尝试提供任何有效的解决方案吗?我的问题已经解决了。我用Java做了格式化。谢谢
<c:out value="${requestScope.teacher.prettyName}"/>
${requestScope.teacher.lastName}, ${fn:substring(requestScope.teacher.firstName, 0, 1)}
<c:out value="${requestScope.teacher.lastName}"/>
<c:out value="${requestScope.teacher.firstName.substring(0,1)}"/>