gpt4 book ai didi

html - 在 JSP 中单击 Div 时调用 Servlet doPost 方法

转载 作者:行者123 更新时间:2023-11-27 23:38:12 25 4
gpt4 key购买 nike

我已经搜索了一段时间,但找不到与以下问题相关的任何信息...

我有一个 JSP 文件,通过点击一个 div,我想调用一个 Servlet 的 doPost 方法。 div 用作按钮。我会贴一张图片,以便您可以更好地理解我在尝试什么。

http://s29.postimg.org/95d9an5sn/Sin_t_tulo_2.png

div 有一个悬停 css 代码,使它变成蓝色,并且每个单元格都是一个不同的 div。我想要的是通过单击每个单元格,调用 Servlet doPost 方法。

非常感谢。

编辑:

计划.jsp:

<%@page import="controller.wizard.classes.Plan"%>
<%@page import="java.util.ArrayList"%>
<%@page import="controller.Configuracion"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" href="<%=Configuracion.getInstance().getRoot()%>css/style.css" type="text/css">
<script type="text/javascript" src="<%=Configuracion.getInstance().getRoot()%>js/jquery-1.11.1.js"></script>
<script type="text/javascript" src="<%=Configuracion.getInstance().getRoot()%>js/ajax.js"></script>
<title>Welcome</title>
<script>
function transferCallToServlet()
{
document.requestForm.action = "/cargar_plan";
document.requestForm.submit();
}
</script>
</head>
<body>

<jsp:include page="/common/header.jsp" />
<jsp:include page="/common/userHeader.jsp" />
<div class="marginNavbarUser"></div>
<div class = "contentWrapper white">
<div id="body">

<h1>PLANES DE ORDENACIÓN INDUSTRIAL PARCIAL</h1>
<% ArrayList<Plan> planes = (ArrayList<Plan>)request.getSession().getAttribute("planes");

for(int i = 0; i < planes.size(); i++){%>
<form name="requestForm" method="POST">
<div class="planWrapper" onclick="transferCallToServlet()">
<h2><%=planes.get(i).getDenominacion().toUpperCase() %></h2>
<p><%=planes.get(i).getNombre_sector() %> (#<%=planes.get(i).getNumero_sector() %>)</p>
<table>
<tr>
<td><p><%=planes.get(i).getMunicipio() %></p></td>
</tr>
<tr>
<td><p>Fase #<%=planes.get(i).getFase() %></p></td>
<td><p>Creación: <%=planes.get(i).getFechaCreacion() %></p></td>
</tr>
<tr>
<td><p><%=planes.get(i).getIdioma() %></p></td>
<td><p>Última modificación: <%=planes.get(i).getFechaUltimaModificacion() %></p></td>
</tr>
</table>
</div>
</form>
<%}%>





</div>
</div>
<jsp:include page="/common/footer.jsp" />

</body>

CargarPlan.java

package controller.plan;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import controller.errores.SQLError;
import controller.wizard.classes.Plan;
import model.Dao;

/**
* Servlet implementation class CargarPlan
*/
@WebServlet("/cargar_plan")
public class CargarPlan extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public CargarPlan() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {


HttpSession sesion = request.getSession();

int id = Integer.parseInt(request.getParameter("id"));

Dao dao = new Dao();

Plan plan = dao.getWizard().getPlan(id);

sesion.setAttribute("plan", plan);

request.getRequestDispatcher("/user_area/plan.jsp").forward(request, response);

System.out.println(id);

} catch (SQLException e) {
SQLError error = new SQLError(request, response, e);
}


}

最佳答案

您可以在 javascript 的帮助下完成此操作。首先,您需要编写一个 javascript 函数,通过提交表单将您的请求重定向到 servlet。看这个例子
test.jsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script>
function transferCallToServlet(i)
{
document.requestForm.action = "myServlet";
document.requestForm.download.value=i;
document.requestForm.submit();

}
</script>
</head>
<body>
<form name="requestForm" method="get">
<input type="hidden" name="download" >
<% for(int i=0;i<6;i++){ %>
<div style="background-color: black;width=10px;height: 100px" onclick="transferCallToServlet(<%=i %>)" >
</div>
<br>
<%} %>

</form>
</body>
</html>

myServlet.java

....
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Hii In the servlet");
}

当您单击该 div 时,它将调用 servlet(本例中为 myServlet)的 doPost 方法。


注意事项- 如果你想在 url 中使用该属性,你需要在提交表单后将方法从 post 更改为 get so

关于html - 在 JSP 中单击 Div 时调用 Servlet doPost 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com