java jsp返回对象的地址
我有下一种情况。 我将对象列表转发给JSP类别,并对其进行迭代:
<html>
<head>
<title>Test</title>
</head>
<body>
<c:forEach var="category" items="${categories}">
<a href="/mytest/projects?category=${category}"><c:out value="${category.id} - ${category.name}"/></a><p>
</c:forEach>
</body>
</html>
结果显示了特定项目的链接列表。现在的问题是,JSP以字符串形式返回对象${category}的地址:
projects?category=data.Category@6892b54
如何通过servlet中的地址访问该对象?我可以返回它的id并通过新类别(id)启动,但我强烈感觉有一种方法可以访问已经存在的对象
在servlet中,我尝试使用我所知道的来访问对象:
Category category = req.getParameter("category");
但编译器返回一个错误,字符串不能被转换为类别(((
# 1 楼答案
${category}
正在引用名为category
的属性。此属性可能在请求、会话或应用程序范围内。如果您的jsp中直接有这个:它将调用在那里找到的对象的
toString
方法。因为您没有重写该方法,所以它使用Object#toString
为了避免所有这些,您应该在查询字符串中传递实体的一些标识符作为参数。根据您的代码,这应该做到:
在预处理GET请求的控制器中,读取参数
"category"
,并进行适当的数据查找