【问题标题】:Populating more than one HTML statement from a Javascript change via Java通过 Java 从 Javascript 更改中填充多个 HTML 语句
【发布时间】:2013-02-21 01:06:38
【问题描述】:

当我的网页发生更改时,我试图填充两个单独的 HTML 对象 - 一个是下拉列表,一个是表单。

所以在我的 JSP 代码中我有这个:

$('#uSystemList').change(function() {
    $.get("/live-application/systemById", {systemid: $("#uSystemList").val()}, displayChangedSystemResults, "html");
});

<script type="text/javascript">
function displayChangedSystemResults(html){
    $('#uList').empty();
    $('#uList').append(html);
}
</script>

在 Java 方面我有这个:

@RequestMapping(value = "/systemById", method = RequestMethod.GET)
public void getSystemById(@RequestParam("systemid") String systemid, OutputStream outputStream) throws IOException {
    StringBuilder refreshHtml = new StringBuilder();
    try {
        String html = "";
        System system = service.getSystemById(systemid));
        for (Value value: inewsSystem.getValues()) {
            html = html + "<option value='" + value.getId() + "'> " + value.getName() + "</>";
            }
        } 
        refreshHtml.append(html );
        outputStream.write(refreshHtml.toString().getBytes());
        outputStream.flush();
    } catch (Exception e) {
        outputStream.flush();
    }
}

这样会填充我的uList 下拉列表 - 但我如何告诉它也填充其他内容(例如表单,但可以是其他任何内容作为示例......)。 OutputStream 似乎每次更改只允许我填充一个对象。

【问题讨论】:

    标签: java html ajax jsp


    【解决方案1】:

    在您的情况下,发送两个 ajax 请求并使用两个 spring 控制器来处理每个请求并不是一个坏主意。随后,在 JSP 页面中,您需要两个 javascript 回调来填充不同的 HTML 部分。

    或者,如果您坚持只发出一个 AJAX 请求;一种解决方法是让 spring 控制器返回一个 JSON,其中包含用于填充这两个 HTML 部分的数据。但是使用这种方法显然需要更多的 javascript 工作。

    【讨论】:

      【解决方案2】:

      这是 Javascript 而不是 JSP :)。您需要更新:

      <script type="text/javascript">
      function displayChangedSystemResults(html){
          $('#uList').empty();
          $('#uList').append(html);
          $('#someOtherElement').empty();
          $('#someOtherElement').append(html);
      }
      </script>
      

      【讨论】:

      • 对不起,我的意思是来自 JSP 页面。好的,谢谢你的帖子。但是它怎么知道 html 的哪一部分是给 ulist 的,哪一部分是给其他元素的呢??
      猜你喜欢
      • 2020-03-23
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多