我正在尝试使用请求调度程序将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
如何解决?
答案 0 :(得分:3)
您将属性存储为adminTenantId
和adminCompnayName
,并将其作为adminTenantid
和adminCompanyname
添加到servlet中。检查属性的拼写,甚至更好,定义常量并在任何地方使用它们,以避免这种拼写错误。
也就是说,设计良好的应用程序应该从servlet调度到JSP,而不是从JSP调度到servlet。 JSP不应该使用scriptlet,只能用于使用EL,JSTL和其他自定义标记生成标记。