这是方案
这是我到达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来查看“entity”参数中的内容,我会得到类似于:Package.CurrentUser@abc1235 ...并且我无法强制转换它作为实体接收它。
incompatible types: String cannot be converted to CurrentUser
有没有办法在那些字段中获得该引用和信息?
答案 0 :(得分:0)
<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");
答案 1 :(得分:0)
在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代码 scriptlet <% %>
,因为JSP主要仅用于演示目的。