Struts:如何使用函数:<bean:write>标记中的substring </bean:write>

时间:2012-03-21 08:54:33

标签: java jsp struts jstl el

我正在使用Hashmap在jsp上打印值。

这是我的逻辑:

<%--
property="collectonRoot" is my hashmap
property="value" is my hashmap values
--%>

<logic:iterate id="element" name="viewServerFileCounterStatusForm" property="collectonRoot">                
            <tr>
                <td  class="tblrows"><bean:write name="element" property="value" />
                </td>
        </tr>
    </logic:iterate>

值输出是这样的

/archived/2012/3/20=1

这没关系,但现在我想使用带有地图值的函数来获取'='之后的字符串,表示'1'。我怎么能这样做?

提前感谢。

2 个答案:

答案 0 :(得分:0)

如果你想要地图中所有值的最后一个字符,为什么不在任何控制器类中为你准备这张地图的java级别做子串。不记得我给了免费的建议,但实际上它更好你你的逻辑在控制器类而不是JSP中工作。    即使您仍然希望在jsp中编写子字符串代码,然后使用“”标记。

下面的代码是在“string”变量中设置map值 '&lt;'c:set var =“string”value =“'&lt;'bean:write name =”element“property =”value“/'&gt;'”/&gt;

下面的代码是打印“string”变量的子串。 '&lt;'c:out value =“$ {fn:substring(string,start,end)}”/'&gt;'

答案 1 :(得分:0)

一个老问题,但是却永远不知道何时有人使用struts 1来处理某些遗留代码。就像我必须忍受一样。

类似phalgun的建议,但是我使用$ {}来访问元素,因为我无法使bean:write以c:set的值工作

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


<logic:iterate id="element" name="viewServerFileCounterStatusForm" property="collectonRoot">
  <tr>
    <c:set var="varValue" value="${element.value}"/>
    <td class="tblrows"><c:out value="${fn:substring(varValue, 0, 8)}"/></td>
  </tr>
</logic:iterate>