2011-09-30 39 views
6

我想根据我从Session获得的内容在显示标签列中显示各种数据。带显示标签的开关盒

如何集成开关罩与显示标签<display:column> 我想显示AAA,如果我从会话中得到的单位值是1等。

这是我想要做的。

switch(List.unit){ 
         case 1: 
          unit = "AAA"; 
          break; 
         case 2: 
          unit = "BBB"; 
          break; 
         case 3: 
          unit = "CCC"; 
          break; 
         default: 
          unit = "undefined"; 
          break; 
        } 

请提前致谢。

回答

18

你可以用displaytag来完成,就像没有它一样。只需在调度到JSP的servlet/action中计算所需的单元并将该单元存储在请求中的某个bean中。然后在JSP访问这个bean:

<display:column>${theBeanStoredInTheRequest.unit}</display:column> 

或计算它在JSP本身,使用JSTL,但它是更冗长:

<display:column> 
    <c:choose> 
     <c:when test="${sessionScope.unit == 1}">AAA</c:when> 
     <c:when test="${sessionScope.unit == 2}">BBB</c:when> 
     <c:when test="${sessionScope.unit == 3}">CCC</c:when> 
     <c:otherwise>undefined</c:otherwise> 
    </c:choose> 
</display:column> 
+0

喜,它在显示栏中显示的所有值像这样[AAA BBB CCC]。有任何想法吗?会话范围的值被正确接收。谢谢。 – kitokid

+0

当我尝试打印单位值本身'$ {List.unit}'时,该值是正确的。 1,2,3等我的显示表是这样的'。我从Session.Thanks中获得List的价值。 – kitokid

+0

您是否在JSP的开头为核心JSTL taglib添加了taglib指令?什么是生成的HTML(查看源) –