如何将JSP变量传递给servlet?

时间:2012-10-21 09:14:54

标签: jsp servlets requestdispatcher

我正在尝试使用请求调度程序将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 个答案:

答案 0 :(得分:3)

您将属性存储为adminTenantIdadminCompnayName,并将其作为adminTenantidadminCompanyname添加到servlet中。检查属性的拼写,甚至更好,定义常量并在任何地方使用它们,以避免这种拼写错误。

也就是说,设计良好的应用程序应该从servlet调度到JSP,而不是从JSP调度到servlet。 JSP不应该使用scriptlet,只能用于使用EL,JSTL和其他自定义标记生成标记。