【问题标题】:Convert integer value to string using JSTL/EL使用 JSTL/EL 将整数值转换为字符串
【发布时间】:2011-04-04 07:37:56
【问题描述】:

我该如何更正这个说法:

${model.myHashtable[model.data.id]}.

myHashtable 定义为

Hashtable<String, String>

但是,${model.data.id} 返回一个 int

我试图做类似的事情

${model.myHashtable['model.data.id']}

但它不起作用。除了将 id 的类型更改为 String 之外,还有其他想法吗?

【问题讨论】:

    标签: java jsp jstl el


    【解决方案1】:

    将其设置为&lt;c:set&gt; 的正文。它将隐式转换为String

    <c:set var="idAsString">${model.data.id}</c:set>
    <c:out value="${model.myHashtable[idAsString]}" />
    

    【讨论】:

    • 谢谢,明天试试。 :)
    • 我认为这是本月第三次您的回答帮助了我。谢谢!
    • 这是在 EL 中将字符串与数字进行比较而不必担心引发异常的最佳方法吗?
    【解决方案2】:

    ${''.concat(model.data.id)} 适合我,你可以试试。

    【讨论】:

    • 你拯救了我的一天。
    【解决方案3】:

    您可以使用 org.apache.commons.collections4.map.CaseInsensitiveMap,String "1" 和 int 1 是同一个键;

    【讨论】:

      【解决方案4】:

      在 JSP 文件中:

      <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
      
      <!-- lines of code... -->
      
      <fmt:parseNumber var = "id_value" type = "number" value = "${model.data.id}" />
      <c:out value = "${id_value}" />
      

      【讨论】:

        【解决方案5】:

        ${model.data.id}返回一个整数,使用Hashtable ,解决了我的问题。如果 id 是数字,那么 没用。

        【讨论】:

          猜你喜欢
          • 2012-11-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-11
          • 2014-05-18
          • 1970-01-01
          • 1970-01-01
          • 2021-12-14
          相关资源
          最近更新 更多