![](/img/trans.png)
[英]how to pass values from jsp to servlet through <a href> using jstl
[英]Passing parameter from JSTL to servlet through <a href> and jstl tags
这就是我用来发送包含值${masession.idemp}
的参数“ idemp”的代码
<a href="<c:url value="/consultertickets">
<c:param name="idemp" value="${masession.idemp}"/>
</c:url>">
<img src="<c:url value="/inc/liste.png"></c:url>" alt="consulter tickets" />
</a>
当重定向到servlet“ / consultertickets”时,浏览器URL显示:
http://localhost:4040/monprojet2/consultertickets?idemp=64
因此参数已传递并且可以正常工作,但是用于GET而不是POST的方法很明显,这是我在Servlet中使用的方法,这是Servlet的代码。
@WebServlet(urlPatterns= {"/consultertickets"})
public class ConsulterTickets extends HttpServlet {
private String VUE = "/WEB-INF/ListeTickets.jsp";
@EJB
private TicketDao ticketDao;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.getServletContext().getRequestDispatcher(VUE).forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
CreationTicketForm ticketform = new CreationTicketForm(ticketDao);
List<Ticket> lticket = ticketform.recupererTickets(request);
boolean resultat;
if(lticket.isEmpty())
{
//resultat="Vous n'avez soumit aucun ticket";
resultat = false;
request.setAttribute("resultat", resultat);
this.getServletContext().getRequestDispatcher("/ListeTickets2.jsp").forward(request, response);
}else{
//String VUE = "/ListeTickets.jsp";
resultat=true;
request.setAttribute("resultat", resultat);
request.setAttribute("lticket", lticket);
this.getServletContext().getRequestDispatcher(VUE).forward(request, response);
}
}
}
有什么方法可以通过POST方法将参数传递给servlet,而无需通过<form></form>
解决方案1:
修改doGet
方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//this.getServletContext().getRequestDispatcher(VUE).forward(request, response);
doPost(request, response);
}
解决方案2:
删除doGet()
并将doPost()
更改为service()
编辑1:
参见, Hyperlinks
( <a>
标记)用于发送GET请求,但不发送POST 。
因此,如果要使用Hyperlink实现发送POST请求,则没有直接方法。 但是, Javascript
可以为您提供帮助。
使用Javascript
您可以引导<a>
在<form>
的帮助下发送POST请求。
我刚刚修改了您的代码。 这应该对您有帮助。
<a href="javascript:document.getElementById('form1').submit()">
<img src="<c:url value="/inc/liste.png"></c:url>" alt="consulter tickets" />
</a>
<form action="<c:url value="/consultertickets"/>" method="post" id="form1">
<input type="hidden" name="idemp" value="${masession.idemp}"/>
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.