[英]Sending a variable from Servlet to JSP
我有一個關於servlet和jsp的問題。
Servlet:
public class Servlet extends javax.servlet.http.HttpServlet {
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
Integer i = new Integer(15);
request.setAttribute("var", i);
RequestDispatcher Dispatcher = getServletContext().getRequestDispatcher("/index.jsp");
Dispatcher.forward(request, response);
}
JSP頁面:
<html>
<head>
<title></title>
</head>
<body>
<form id="id" method="get" action="servlet">
<%= (request.getAttribute("var")) %>
</form>
</body>
</html>
結果,我希望看到15,但是看到null。 為什么會發生?
請求參數從視圖發送到控制器,請求屬性用於在當前請求中傳遞數據,以幫助構建新的響應。 因此,您不應該使用scriplet並通過使用Expression Language訪問請求屬性:
<body>
<!-- No need to use a form for this page -->
The request attribute: ${var}
</body>
注意,根據當前請求,您應該在servlet上執行GET請求。 由於您的servlet名稱是servlet (建議您立即更改它),因此您應該訪問以下URL: http://yourServerName/yourApplicationName/servlet
使用request.getAttribute(“ var”);
我不知道在servlet中,但是在struts 2中,您需要getter和setter方法來從jsp發送數據,請嘗試以下操作:
public class Servlet extends javax.servlet.http.HttpServlet
{
private Integer i;
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
i = new Integer(15);
request.setAttribute("var", i);
RequestDispatcher Dispatcher = getServletContext().getRequestDispatcher("/index.jsp");
Dispatcher.forward(request, response);
}
public Integer getI()
{
return i;
}
public void setI(Integer i)
{
this.i = i;
}
}//also lacked this
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.