![](/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.