我正在使用Spring MVC应用程序,我有一个带有以下代码的JSP。
<c:choose>
<c:when test="${type eq 'school'}">
<h1 class="title">${schoolVO.name}</h1>
</c:when>
<c:when test="${type eq 'college'}">
<h1 class="title">${collegeVO.name}</h1>
</c:when>
<c:when test="${type eq 'tution'}">
<h1 class="title">${tutionVO.name}</h1>
</c:when>
...
..
..
Many other types...
</c:choose>
当控制器中存在依赖于type
的方法时,会调用此jsp
设置模型属性。
如果类型为school
,则输入
modelMap.addAttribute("schoolVO", school);
如果大学那么
modelMap.addAttribute("collegeVO", college);
与其他人一样..
现在我要删除<c:when>
中的jsp
条件。
现在根据我想要添加一个模型属性的类型并放置其中一个
schoolVO
或collgeVO
喜欢
modelMap.addAttribute("typeVO", "schoolVO");
因此我不需要在<c:when>
中使用if jsp
条件。
我想使用像
${{typeVO}.name}
但是这给了我错误
contains invalid expression(s): javax.el.ELException: Error Parsing:
我怎么能做到这一点? 提前谢谢。
P.S。我无法得到我的问题的正确标题。如果有合适的东西我可以改变它。
答案 0 :(得分:0)
如果所有人都有一个名为name
的字段,那么您可以${typeVO.name}
答案 1 :(得分:0)
您可以在请求中设置许多不同的属性使自己复杂化。 AFAIK,最好有一个属性来处理你想要打印的名称:
modelMap.addAttribute("institutionName", school.getName());
//or
modelMap.addAttribute("institutionName", college.getName());
包含您将要打印的标题,然后在您的JSP中,您没有使用任何验证,只需编写
<h1 class="title">${institutionName}</h1>