1
在繼續之前,我發現幾年前還有一個類似的問題(Passing a List from Servlet to JSP)。我意識到可以設置我想要作爲會話屬性傳遞的列表,但出於好奇,我想知道是否可以使用PrintWriter對象將數據發回JSP頁面。使用PrintWriter對象將List對象從Java Servlet發送到JSP?
JSP
<script type="text/javascript">
function getEngineSchemes(engineID) {
$.get('SchemeTypeServlet', {
action: "getSchemes",
engineID: engineID
},
function(data, status){
}).fail(function() {
alert("Error obtaining schemes for engine with engine id: " + engineID);
});
}
</script>
</body>
的Servlet
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Set type of response
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
//get parameters that may be passed from client to determine which methods should be called
String action = request.getParameter("action");
if(action.equalsIgnoreCase("getSchemesForEngine")) {
Integer engineID = Integer.parseInt(request.getParameter("engineID"));
List<String> schemeNames = getSchemeNamesForEngine(engineID);
response.getWriter(). //insert code to send object back to JSP
response.getWriter().flush();
}
選項
一個解決方案我認爲可能是合理的。將創建一個JSONObject
和沿的
response.setContentType("application/json");
JSONObject json = new JSONObject();
for(String name : schemeNames) {
json.put(engineID, name);
}
response.getWriter().write(json.toJSONString());
response.getWriter().flush();
線的東西我沒有測試上面的代碼,但我只是想知道,如果這似乎是我的問題,或者最好的解決辦法我讓它過於複雜?也許我的問題有一個更簡單的解決方案。
是的,您可以將數據從Servlet發回JSP頁面,因爲我已經這樣做了。在JSP文件中,您可以包含HTML和JavaScript,因此您可以使用JQuery.post(),它允許您指定一個Servlet將數據發佈到回調函數中,並在回調函數中使用,例如: ... }) (內容); });函數(數據)var content = data [ 你可以利用從Servlet獲得的結果填充html元素。 –