我有两个表,当我点击第一个表时会加载其中一个表。 所以我在JSP中使用Ajax来实现它:
$("#tablesorter-demo tr").click(function(){
$('#tablesorter-demo tr').not(this).removeClass('hilite');
$(this).toggleClass('hilite');
$.ajax({
type: "post",
url: "gerer_caf_adherente",
data: "name=test",
success: function(data){
}
});
});
在我的JAVA中:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String forward = "/gererCafAdherentes/accueil_gerercafadherentes.jsp";
try {
if(request.getParameter("name") != null){
codeOrganismeCentrale = "5874";
libelle = "CAF Rhones Alpes";
request.setAttribute("codeOrganismeCentrale",codeOrganismeCentrale);
request.setAttribute("libelle",libelle);
}getServletContext().getRequestDispatcher(forward).forward(request, response);
} catch (Exception e) {
e.getMessage();
}
}
所以,我想在我的JSP中获取值:libelle和codeOrganismeCentrale,可以将它添加到may表中,但我不能..
我的表格代码:
<td id="td_codeorganismeSPCentrale" > <% if(request.getAttribute("codeOrganismeCentrale") != null){
out.print(request.getAttribute("codeOrganismeCentrale"));
} %></td>
<td id="td_libelleCentrale" ><% if(request.getAttribute("libelle") !=null){
out.print(request.getAttribute("libelle"));
}%></td>
答案 0 :(得分:3)
你可以通过两种方式获得它。
1)您可以从请求或会话中获取
在JSP页面中编写以下代码以获取值。
String value = session.getAttribute("libelle"); OR
String value = request.getAttribute("libelle");
2)你可以在Ajax Response中传递值。
在Servlet上编写以下代码。
out.println(libelle);
在Ajax中,您将获得响应数据。
$.ajax({
type: "post",
url: "gerer_caf_adherente",
data: "name=test",
success: function(data){
alert(data); // your response will print here.
}
});
答案 1 :(得分:2)
您的JSP代码在服务器端运行,您的JS代码在客户端运行。他们无法直接通过HTTP请求进行通信。
请求对象是表示单个请求的Java抽象。在请求上保存属性只是在服务器处理HTTP请求时传递数据的一种方便方法,一旦请求完成就会被丢弃,因此在AJAX之后你不会得到请求属性。但它没有t影响服务器对HTTP请求的响应,因此您可以在Response中打印数据。
要通过AJAX请求将信息从服务器传递到客户端,您必须在响应中包含该信息。
因此在java端使用以下方法写入响应数据:
out.println(libelle);
在Javascript中,您将能够获得响应中的数据
$.ajax({
type: "post",
url: "gerer_caf_adherente",
data: "name=test",
success: function(response){
alert(response); // you will see the data in alert, you can use it anywhere
}
});