有人可以让我知道如何从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" /> </td>
</tr>
一旦我将字符串添加到模型中,我就无法刷新表单。有任何想法吗?
答案 0 :(得分: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);
});
);