Issue
This could be a repeat question, I apologize. I have a jsp page in which I have some buttons. Each button has its own servlet to call. I want to know if there is any way I can call these servlets without using form because the user may choose any of the 3 functionalities given. I also need to pass a value from the jsp page to the servlets I call.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Configurations</title>
<script type="text/javascript">
function runConfiguration(){
var config=${dataValues.get(0)};
//call servlet
}
function editConfiguration(){
var config=${dataValues.get(0)};
//call servlet
}
function deleteConfiguration(){
var config=${dataValues.get(0)};
//call servlet
}
</script>
</head>
<body>
<%
String[] label={"Master Port","Baud Rate","Char Size","Stop Bits","Parity","RTU Port","Baud Rate","Char Size","Stop Bits", "Parity"};
int i=0;
%>
<br>
<br>
<br>
<table align="center" border="1">
<td><div align="center" style="background-color: goldenrod;"><b> ${dataValues.get(0)}</b></div>
<table width="210" align="left" border="1">
<td bgcolor="goldenrod"><b> Header1 </b></td>
<c:forEach var="data" begin="1" end="5" items="${dataValues}" varStatus="status">
<tr>
<td><%=label[i++]%>: ${data}</td>
</tr>
</c:forEach>
</table>
<table width="210" align="left" border="1">
<td bgcolor="goldenrod"><b> Header2 </b></td>
<c:forEach var="data" begin="6" end="10" items="${dataValues}" varStatus="status">
<tr>
<td><%=label[i++]%>: ${data}</td>
</tr>
</c:forEach>
</table>
</td>
</table>
<c:choose>
<c:when test="${dataValues.get(11)==1}">
<p align="center"><b><i>This configuration is already running</i></b></p>
<p align="center">
<input type="button" value="stop" onclick="StopConfiguration"/>
</p>
</c:when>
<c:otherwise>
<p align="center"><b><i>This configuration is currently NOT running</i></b></p>
<p align="center">
<button type="button" onclick="runConfiguration()">Run</button>
<button type="button" onclick="editConfiguration()">Edit</button>
<button type="button" onclick="deleteConfiguration()">Delete</button>
</p>
</c:otherwise>
</c:choose>
</body>
</html>
Solution
I see 2 options here:
Changing a form's URL accordingly to each button using JavaScript, right before sendiing a POST request;
Use a form and the same servlet for all 3 cases. In the servlet you should determine what button has been pressed (their values are passed as a request parameter) and then go forward accordingly.
Answered By - Wizart