0

Web ページで変更が発生したときに、ドロップダウン リストとフォームの 2 つの個別の 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ドロップダウンにデータが入力されますが、他の何かにもデータを入力するように指示するにはどうすればよいですか (たとえば、フォームですが、例としては他のものになる可能性があります...)。変更ごとに 1 つのOutputStreamオブジェクトしか作成できないようです。

4

2 に答える 2

1

あなたの場合、2 つの ajax リクエストを送信し、各リクエストを処理するために 2 つのスプリング コントローラーを用意することは悪い考えではありません。その後、JSP ページでは、異なる HTML セクションを設定するために 2 つの JavaScript コールバックが必要になります。

または、AJAX リクエストを 1 つだけ作成することを主張する場合。回避策は、Spring コントローラーが JSON を返すようにすることです。これには、これら 2 つの HTML セクションに入力するためのデータが含まれています。しかし、このアプローチでは、JavaScript の作業がもう少し必要になるようです。

于 2013-03-06T10:06:10.247 に答える
0

これはJSPではなくJavascriptです:)。更新する必要があります:

<script type="text/javascript">
function displayChangedSystemResults(html){
    $('#uList').empty();
    $('#uList').append(html);
    $('#someOtherElement').empty();
    $('#someOtherElement').append(html);
}
</script>
于 2013-03-06T09:59:26.300 に答える