i在JSP
中<c:set var="reqTypes" value="${requestType }" scope="request" />
我无法在控制器中访问
String[] requestType = ParamUtil.getParameterValues(req, "reqTypes");
我收到" requestType"为null。
原因是什么?
有几个原因。
-
如果
ParamUtil
和getParameterValues()
命名良好,则控制器会尝试访问请求参数,但是JSP设置了请求属性。这根本不是同一回事。参数是浏览器发布表单时通过浏览器发送的内容(或单击表单/foo/bla?param1=value1¶m2=value2
中的链接)。属性是服务器请求中存储的任意对象,因此请求处理链中的下一个组件可以找到并使用它们。 -
JSP,如果架构是经典的MVC,则在控制器之后而不是以前执行,并且您正在设置JSP中的请求属性。因此,这些属性一旦处理了当前请求就会消失。