今天試了在前端使用 jQuery 的 ajax 傳參數給 controller 並由 controller 回傳一個值給前端頁面,
前端 js(jQuery) 中的寫法是這樣:
$.ajax({
url: 'batchMonitor.do?method=saveTest',
dataType: "html",
type: "post",
data: {
data1: $("#input1").val()
},
error: function(xhr) {
alert('Ajax request 發生錯誤');
},
success: function(response) {
alert(response);
}});
其中 url 這邊是設定成 controller 的名稱跟要處理這個 ajax 的方法,
data 區段指的是要傳一個參數叫做 data1 的給 server 端
而在 controller 端的寫法則是下面這樣:
public void saveTest(final HttpServletRequest req, final HttpServletResponse res) throws IOException {
String getFromClientTest = req.getParameter("data1");
logger.trace("saveTest:{} ", getFromClientTest);
res.setContentType("text/html");
res.setHeader("Cache-Control", "no-cache");
res.getWriter().write(getFromClientTest);
}
因為在前端 jsp 已經設定了 data ,所以可以用 HttpServletRequest 的 getParameter去接 設定的參數(值則為後面那個$("#input1").val())
記得要設定回傳的 content type, content type 也要跟前端的 dataType 一樣型態才可以。
沒有留言:
張貼留言