【发布时间】:2014-12-16 16:09:37
【问题描述】:
当 jsp 中的选项框发生更改时,我想对我的 TestServlet 进行 ajax 后调用。当这个 servlet 从 ajax 检索到时,servlet 将创建一个新的 person 对象并将其发送回 ajax 调用来自的 jsp 页面。
此时我可以在 id 为 uidrespon <div id="uidrespon"></div> 的 div 中打印此对象,但如何使用<c:out test="${object.name}"/> 或 <c:out test="${object.age}"/> 等 JSTL 输出标签读取此对象
从 jsp 页面到 servlet 的 Ajax 调用:
<script> $(document).ready(function() { $("body").on('change', '#personbox', function() { //get the selected value var selectedValue = $(this).val(); $.ajax({ type : 'POST', url : '${pageContext.request.contextPath}/secure/TestController.do', data : { "ajaxCallBack" : selectedValue }, success : function(response) { $('#uidrespon').html(response); }, error : function(error) { alert(error); } }); alert(selectedValue); }); }); </script>
选择下拉菜单:
<select class="form-control" id="rulebox" name="selectPerson" onchange="Change()">
<option value="">Select rule</option>
<option value="${dePerson.name}">${dePerson.name}</option>
<option value="${dePerson.name}">${dePerson.name}</option>
</select>
Servlet 中的 Post 方法:
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
String name = req.getParameter("ajaxCallBack");
Person nwePerson = new Person();
nwePerson.setThePerson((List<Person>) getServletContext().getAttribute("allPersons"));
Persons src = nweFact.findPerson(name);
req.setAttribute("src", src);
resp.setCharacterEncoding("UTF-8");
resp.getWriter().print(src);
}
【问题讨论】: