java jsp返回对象的地址

标签 java jsp servlets

我有以下情况。 我将对象类别列表转发到 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");

但是编译器返回错误,指出 String 无法转换为 Category(((

最佳答案

${category} 正在引用名为 category 的属性。该属性可以在请求、 session 或应用程序范围内。如果您直接在 jsp 中包含此内容:

${category}

它将调用在那里找到的对象的toString方法。由于您尚未重写该方法,因此它使用 Object#toString

为了避免这一切,您应该将实体的一些标识符作为查询字符串中的参数传递。从您的代码来看,应该这样做:

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

在 Controller 中,您要预处理 GET 请求,读取参数“category” 并执行正确的数据查找。

关于java jsp返回对象的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31543153/

相关文章:

java - && 和 || 的区别

java - 如何使用dojo查找操作类是否返回错误或成功?

javascript - 如何格式化 struts-dojo datetimepicker 以显示 24 小时而不是 12 小时?

java - URL 根 Java Servlet

java - 如何演示java多线程可见性问题?

java - 如何在 hibernate 中不更新 ddl 架构

java - 如何计算后缀表达式中的符号?

java - 在jsp页面中调用ajax时加载覆盖

java - 如何使用 Commons FileUpload 设置用于存储文件上传的文件夹

java - iggrid 使用 servlet 作为数据源时出现空值失败