【问题标题】:How to pass JSP variables to servlet?如何将 JSP 变量传递给 servlet?
【发布时间】:2012-10-21 09:14:53
【问题描述】:

我正在尝试使用请求调度程序将两个值从我的 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

如何解决?

【问题讨论】:

  • 您似乎完全误解了如何正确使用 JSP/Servlet。您的 JSP 被用作控制器,而您的 servlet 被用作视图。应该反过来。将鼠标放在您放置在问题上的[servlets] 标签上方,直到出现一个黑框,然后单击其中的 info 链接。请仔细阅读此内容。

标签: jsp servlets requestdispatcher


【解决方案1】:

您将属性存储为adminTenantIdadminCompnayName,并将它们作为adminTenantidadminCompanyname 在servlet 中获取。检查属性的拼写,或者更好的是,定义常量并在任何地方使用它们,以避免此类拼写错误。

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

【讨论】:

    猜你喜欢
    • 2013-03-22
    • 2012-03-18
    • 2014-09-03
    • 2013-06-10
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多