如何在jsp var中使用字符串?

时间:2013-03-19 17:04:40

标签: java jsp

我想在jsp方面做这样的事情:

<c:forEach items="${configForm.unselectedServers}" var="item">
    String name = "";
    <c:forEach items="$item.configs" var="conf">
        name += ", " + {$conf.name}
        ....

是否可以做类似的事情?

item.configs它是一个类的数组(包含name)。那部分我知道它有效,我只想知道如何将这些值放在一个字符串中。


编辑:

我收到以下错误:

Caused by: java.lang.NumberFormatException: For input string: ""
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Long.parseLong(Long.java:431)
        at java.lang.Long.<init>(Long.java:678)
        at org.apache.el.lang.ELArithmetic$LongDelegate.coerce(ELArithmetic.java:186)
        at org.apache.el.lang.ELArithmetic.coerce(ELArithmetic.java:357)
        at org.apache.el.lang.ELArithmetic.add(ELArithmetic.java:235)
        at org.apache.el.parser.AstPlus.getValue(AstPlus.java:40)
        at org.apache.el.parser.AstPlus.getValue(AstPlus.java:38)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
        at org.apache.jsp.config.configDetail_jsp._jspx_meth_c_005fset_005f5(configDetail_jsp.java:509)
        at org.apache.jsp.config.configDetail_jsp._jspx_meth_c_005fforEach_005f1(configDetail_jsp.java:475)
        at org.apache.jsp.config.configDetail_jsp._jspx_meth_c_005fforEach_005f0(configDetail_jsp.java:407)
        at org.apache.jsp.config.configDetail_jsp.access$4(configDetail_jsp.java:384)
        at org.apache.jsp.config.configDetail_jsp$Helper.invoke1(configDetail_jsp.java:615)
        at org.apache.jsp.config.configDetail_jsp$Helper.invoke(configDetail_jsp.java:679)

3 个答案:

答案 0 :(得分:4)

怎么样:

<c:forEach items="${configForm.unselectedServers}" var="item">
  <c:set var="name" value="" />
  <c:forEach items="${item.configs}" var="conf">
    <c:set var="name" value="${name}, ${conf.name}" />
  </c:forEach>
</c:forEach>

答案 1 :(得分:2)

更好的方法是使用JSTL本身处理它,如下所示:

<c:forEach items="${configForm.unselectedServers}" var="item">
  <c:set var="name" value="" />
  <c:forEach items="$item.configs" var="conf">
    <c:set var="name" value='${name + "," + conf.name}'/>
    <%--Do something here--%>
  </c:forEach>
</c:forEach>

但如果问题仅仅是为了你的意识,可以用scriptlet做这样的事情:

    <c:forEach items="${configForm.unselectedServers}" var="item">
      <c:set var="name" value="" />
      <c:forEach items="$item.configs" var="conf">
        <c:set var="name" value='${name + "," + conf.name}'/>
        <%
          String name = pageContext.getAttribute("name");
          //do something here
        %>
      </c:forEach>
    </c:forEach>

答案 2 :(得分:2)

也许这有帮助。

<c:forEach items="${configForm.unselectedServers}" var="item">
   <c:set var="name" value=""/>
   <c:forEach items="${item.configs}" var="conf">
      // here u can use yr variable like this
      <c:set var="name" value="${conf.first_name}"/>
   </c:forEach>
</c:forEach>