2012-10-21 271 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和其他自定义标记来生成标记。