有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    ${category}正在引用名为category的属性。此属性可能在请求、会话或应用程序范围内。如果您的jsp中直接有这个:

    ${category}
    

    它将调用在那里找到的对象的toString方法。因为您没有重写该方法,所以它使用Object#toString

    为了避免所有这些,您应该在查询字符串中传递实体的一些标识符作为参数。根据您的代码,这应该做到:

    <a href="/mytest/projects?category=${category.id}">
    

    在预处理GET请求的控制器中,读取参数"category",并进行适当的数据查找