JSP 将 request.getParameter 投射到实体
JSP Cast request.getParameter to Entity
场景是这样
这是我到达 servlet 的 JSP。有一个名为 CurrentUser
的实体,它包含有关用户的多个信息字段。我想以实体的形式将有关用户的所有信息传递给 servlet。
<a href="Controller?action=profile&entity=<%=_currentUser%>"> Information about the current user, like: name, id, profile picture etc... </a>
servlet 内部:
if(request.getParameter("action").equals("profile")){
CurrentUser _currentUser= (CurrentUser) request.getParameter("entity");
}
如果我执行 system.out 以查看“实体”参数中的内容,我会得到类似以下内容的信息:Package.CurrentUser@abc1235
... 我无法将其作为实体接收。
incompatible types: String cannot be converted to CurrentUser
有什么方法可以获取该引用和这些字段中的信息吗?
不,你不应该这样做。使用引用字符串表示您无法检索对象实例。但是您可以在查询字符串中使用 String 对象的 ID 参数。然后通过 ID 检索对象。
<a href="Controller?action=profile&entity=<%=_currentUser.id%>"> Information about the current user, like: name, id, profile picture etc... </a>
String id = request.getParameter("entity");
在 JSP 中,将您的 _currentUser
实体存储到 Session
中,如
<% session.setAttribute("entity", _currentUser); %>
<a href="Controller?action=profile">Information ... </a>
现在,在 Controller
Servlet 中,您可以将此 entity
检索为
if(request.getParameter("action").equals("profile")){
CurrentUser _currentUser= (CurrentUser) session.getAttribute("entity");
}
请注意,将当前用户对象存储到 Session
理想情况下应该由首先将请求转发给 JSP 的 Servlet
完成。在 JSP 中使用 Java 代码 scriptlets <% %>
已被弃用,因为 JSPs 应该主要仅用于演示目的。
场景是这样
这是我到达 servlet 的 JSP。有一个名为 CurrentUser
的实体,它包含有关用户的多个信息字段。我想以实体的形式将有关用户的所有信息传递给 servlet。
<a href="Controller?action=profile&entity=<%=_currentUser%>"> Information about the current user, like: name, id, profile picture etc... </a>
servlet 内部:
if(request.getParameter("action").equals("profile")){
CurrentUser _currentUser= (CurrentUser) request.getParameter("entity");
}
如果我执行 system.out 以查看“实体”参数中的内容,我会得到类似以下内容的信息:Package.CurrentUser@abc1235
... 我无法将其作为实体接收。
incompatible types: String cannot be converted to CurrentUser
有什么方法可以获取该引用和这些字段中的信息吗?
不,你不应该这样做。使用引用字符串表示您无法检索对象实例。但是您可以在查询字符串中使用 String 对象的 ID 参数。然后通过 ID 检索对象。
<a href="Controller?action=profile&entity=<%=_currentUser.id%>"> Information about the current user, like: name, id, profile picture etc... </a>
String id = request.getParameter("entity");
在 JSP 中,将您的 _currentUser
实体存储到 Session
中,如
<% session.setAttribute("entity", _currentUser); %>
<a href="Controller?action=profile">Information ... </a>
现在,在 Controller
Servlet 中,您可以将此 entity
检索为
if(request.getParameter("action").equals("profile")){
CurrentUser _currentUser= (CurrentUser) session.getAttribute("entity");
}
请注意,将当前用户对象存储到 Session
理想情况下应该由首先将请求转发给 JSP 的 Servlet
完成。在 JSP 中使用 Java 代码 scriptlets <% %>
已被弃用,因为 JSPs 应该主要仅用于演示目的。