【问题标题】:How to get data from List in JSTL with autocomplete spring mvc如何使用自动完成spring mvc从JSTL中的List获取数据
【发布时间】:2017-05-24 11:56:17
【问题描述】:

我正在使用 JSTL 和 Jquery 将数据自动完成,数据列表将从 Spring mvc 中的 List 获取

我的行动:

List<Map> mapList = googleMapLocationService.getAllGoogleMapLocations();
model.put("mapList", mapList);

jquery/jsp:

<script>
  $( function() {
  var availableTags =
      <c:forEach items="${mapList}" var="map">
      [         
          "<c:out value="${map.address}"/>"         
      ];
      </c:forEach>
  $( "#tags" ).autocomplete({
    source: availableTags
  });
 } );

  <div style="width:320px ;margin-left: -38px; margin-top: -24px">
    <input id="tags" path="tags" />
  </div>

已更新:(尝试将 'address' 替换为 'id')

<script>
$( function() {
var availableTags = []
    <c:forEach items="${mapList}" var="map">
        availableTags.push("<c:out value="'${map.id}', "/>");
    </c:forEach>
 $( "#tags" ).autocomplete({
   source: availableTags
 });
} );

结果:

当我键入任何“关键字”时,它似乎无法在自动完成中列出

我该如何解决这个问题?非常感谢!

【问题讨论】:

    标签: java jquery ajax spring-mvc jstl


    【解决方案1】:

    此代码生成 javascript 数组结构。试着检查一下。

     <script>
      $( function() {
      var availableTags =
          <c:forEach items="${mapList}" var="map" varStatus="totalCount">
          [         
              <c:out value="'${map.address}'">
              </c:out>
              <c:if test="${totalCount.count lt fn:length(mapList)}">
              <c:out value=",">
              </c:out>
              </c:if>      
          ];
          </c:forEach>
      $( "#tags" ).autocomplete({
        source: availableTags
      });
     } );
    

    【讨论】:

    • 我已经修改了代码。作为一个数组,它应该具有数组结构,但在您的场景中,没有逗号和引号来描述数组。试试这个。但是您的最后一个值也以逗号结尾,您必须使用查找长度来限制它并阻止它显示。
    • 嗨@ram vinoth:我已经更新了上面的结果,你的第一个代码似乎是正确的,我尝试通过 'id' 更改 'address' 并且可以获取数据,但是 autocomplate 的值不正确
    • 尝试第二个希望这会给您带来您期望的结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2019-03-27
    • 2015-08-07
    • 1970-01-01
    相关资源
    最近更新 更多