0

JSP からモデルにアクセスする方法を教えてください。

これは私のコントローラーです:

@RequestMapping(value = "/systemById", method = RequestMethod.GET)
public void getSystemById(Model model, OutputStream outputStream) throws IOException {
     model.addAttribute("fSystemName", "Test name");
     name = system.getName();
} 

JSP コード:

$('#uINewsSystemList').change(function() {
    $.get("/application/systemById");
);  

<form:form id="systemForm" commandName="systemForm">
<tr>
    <td valign="top"><form:input path="fSystemName" value="${fSystemName}" size="20" />&nbsp;</td>                      
</tr>

モデルに文字列を追加すると、フォームを更新できません。何か案は?

4

1 に答える 1

3

ユーザーの操作に基づいて ajax 呼び出しを行う場合、呼び出しているフローは、ページのレンダリングに使用した元の JSP とは何の関係もありません。

getSystemById メソッドでページを完全に再レンダリングする (おそらくフォーム送信/POST 経由) か、サンプル コードを変更して、JavaScript 経由で変更を行うために必要なデータを実際に返すようにすることができます。動的更新を探していると述べたので、変更は次のようになります。

@RequestMapping(value = "/systemById/${id}", method = RequestMethod.GET)
public String getSystemById(@PathVariable String id) throws IOException {
     //lookup new system data by id
     Model model = someService.getModelById(id);
     return model.getName(); //you can return more than just name, but then you will need some sort of conversion to handle that data (json, xml, etc.)
} 

クライアント ajax 呼び出しは、返されたデータを使用して UI を更新する成功関数を持つように設定する必要があります。

$('#uINewsSystemList').change(function() {
    var id = $(this).val();
    $.get("/application/systemById/" + id, function(returnedData){
        //use returnedData to refresh the ui.
        $('selectorForSystemNameField').val(returnedData);
    });
);  
于 2013-03-06T15:47:11.103 に答える