2012-10-21 222 views
0

我想通過請求分派器將我的JSP頁面中的兩個值傳遞給servlet。如何將JSP變量傳遞給servlet?

這裏是JSP代碼:

<% 
      String companyName = (String) request 
        .getAttribute("adminCompnayName"); 
      String tenantId = (String) request.getAttribute("adminTenantId"); 

      request.setAttribute("adminCompnayName", companyName); 

      request.setAttribute("adminTenantId", tenantId); 

request.setAttribute("adminTenantid","my compnay"); 
      request.setAttribute("adminCompanyname"," my tenant id"); 
      String servletName="../StoreUserDetails"; 
      RequestDispatcher dispatcher = request.getRequestDispatcher(servletName); 
      if (dispatcher != null){ 
      dispatcher.forward(request, response); 
      } 

這兩個值是從另一個servlet接收。

以下是我正在接收值的servlet代碼。

String tenantId = (String) request.getAttribute("adminTenantid"); 
     String companyName = (String) request 
       .getAttribute("adminCompanyname"); 




out.println("--------------------------" 
       + request.getAttribute("adminTenantid")); 
     out.println("--------------------------" 
       + request.getAttribute("adminCompanyname")); 

但我得到空值。

--------------------------null 

--------------------------null 

如何解決?

+1

您似乎完全誤解了如何正確使用JSP/Servlet。您的JSP已被用作控制器,並且您的servlet已被用作視圖。它應該是相反的。將鼠標置於放置在問題上的'[servlets]'標籤上方,直到出現黑框,然後單擊其中的* info *鏈接。仔細閱讀並徹底。 – BalusC

回答

3

您將屬性存儲爲adminTenantIdadminCompnayName,然後將它們存儲在servlet中作爲adminTenantidadminCompanyname。檢查你的屬性的拼寫,或者甚至更好,定義常量並在任何地方使用它們,以避免這種拼寫錯誤。這就是說,一個設計良好的應用程序應該從一個servlet調度到一個JSP,而不是從一個JSP調度到一個servlet。 JSP不應該使用scriptlet,只能用於使用EL,JSTL和其他自定義標記來生成標記。