0

我正在使用 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

现在取决于我想添加一个模型属性的类型并放置一个 schoolVOcollgeVO喜欢

modelMap.addAttribute("typeVO", "schoolVO");

这样我就不需要<c:when>jsp. 我想使用类似的东西

${{typeVO}.name}

但这给了我错误

 contains invalid expression(s): javax.el.ELException: Error Parsing:

我怎样才能做到这一点?提前致谢。

PS 我无法为我的问题找到正确的标题。如果我可以放一些合适的东西,请更改它。

4

2 回答 2

0

如果他们都有一个名为的字段,name那么您可以这样做${typeVO.name}

于 2013-02-15T07:32:28.580 回答
0

在请求中设置许多不同的属性可能会使自己复杂化。AFAIK,最好有一个处理您要打印的名称的属性:

modelMap.addAttribute("institutionName", school.getName());
//or
modelMap.addAttribute("institutionName", college.getName());

这包含您将打印的标题,然后在您的 JSP 中您没有使用任何验证,只需编写

<h1 class="title">${institutionName}</h1>
于 2013-02-15T07:33:22.107 回答