簡體   English   中英

將變量從Servlet發送到JSP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM