2013-03-06 122 views
0

我試圖找到一種基於Java的結果在JSP頁面中填充「表單」的方法。從Java的JSP頁面填充表格

因此,這裏是我的Javascript代碼:

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

function displayChangedSystemResults(html){ 
    $('#systemForm').empty(); 
    $('#systemForm').append(html); 
} 

的形式爲:

<form:form id="systemForm" method="post" action="/live-application/systemSave" commandName="systemForm"> 
<tr> 
    <td valign="top"><form:select path="uSystemList" id="uSystemList"> </form:select> </td> 
</tr> 
<tr> 
    <td valign="top"><form:input path="fSystemName"/></td> 
</tr> 
</form:form> 

和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 = new String(); 
     if (!systemid.equals("")) { 
      System system = service.getSystemById(systemid)); 

      html = html + "<input type='text' value='" + system.getName() + "' id='fSystemName' />"; 
     } 
     refreshHtml.append(hostHtml); 
     outputStream.write(refreshHtml.toString().getBytes()); 
     outputStream.flush(); 
    } catch (Exception e) { 
     outputStream.flush(); 
    } 
} 

作爲一個測試,我只是想填充fSystemName字段,但返回到displayChangedSystemResults函數時沒有任何反應。任何人都可以發現我做錯了什麼嗎?

+0

'形式:select'也許應該在'>'和'形式結束:input'存在丟失的'/>' – 2013-03-06 12:11:07

+0

對不起,這是一個錯誤因爲我剝離了很多代碼。我將現在編輯... – maloney 2013-03-06 12:12:43

回答

0

更簡單的方法是設置要顯示的請求屬性 的值並在JSP中對其進行訪問。

在服務器端

適應方法簽名,包括彈簧模型

public void getSystemById(@RequestParam("systemid") String systemid, Model model , OutputStream outputStream) throws IOException { 

而在請求處理方法,你可以做

System system = service.getSystemById(systemid)); 
model.addAttribute("fSystemName", system.getName()); 

,然後顯示它在JSP中使用JST lib

爲了使用JSTL添加以下jar文件到您的/WEB-INF/lib

編輯


<tr> 
<td valign="top"><input type="text" value="${fSystemName}"></input></td> 
    </tr> 

編輯2

你不應該直接處理的OutputStream,你應該讓春天爲你做它。 你的方法應該理想的返回一個view name,這春將自動解決

檢查下面的簡單教程。這應該讓你在正確的方向

Spring 3 MVC Hellow World

+0

感謝您的回答,它只是說'標記(表單:輸入)必須爲空'在JSP端 – maloney 2013-03-06 13:20:44

+0

謝謝 - 仍然沒有發生。我是否需要對該模型做些什麼,例如把它返還?你有方法返回類型爲void,所以我假設不,但請讓我知道,如果有什麼我需要做的,以使其'刷新'? – maloney 2013-03-06 13:37:48

+0

請檢查編輯 – Sudhakar 2013-03-06 13:55:49