如何将对象从视图传递给java函数?

时间:2012-08-01 20:05:24

标签: java spring jsp spring-mvc

我有一个jsp-page

<%@page import="org.springframework.web.servlet.ModelAndView"%>
  <%@page import="mvc3.helpers.Utils"%>
  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  <%@ page session="false" %>
  <html>
  <head>
      <title>View Topic</title>
  </head>
  <body>

  <fieldset>
       <legend>${topic.getName()}</legend>
       <div class="display-label-field"><b>Content:</b>${topic.getText()}</div>
       <div class="display-label-field"><b>Comments count:</b>${topic.getCommentsCount()}</div>
       <div class="display-label-field"><b>Last time updated:</b>${topic.getTimeLastUpdated()}</div>

  </fieldset>

  <p>
    <%=Utils.actionLink("Comment Topic", "Topic", "AddComment", Integer.toString( topic.getId() ) ) %>
    <%=Utils.actionLink("Back to Topic List", "", "home", null)%>
  </p>

问题是, $ {topic.getName()} 工作正常,但&lt;%= Utils.actionLink(“评论主题”,“主题”,“AddComment”) ,Integer.toString(topic.getId()))%&gt; 导致主题无法解决错误。我该如何处理这个问题?

3 个答案:

答案 0 :(得分:1)

如果您在请求中设置了属性主题,请执行

Integer.toString( ((Topic)request.getAttribute("topic")).getId())

答案 1 :(得分:0)

我们不应该使用EL访问getId吗?像下面的东西?

Integer.toString( ${topic.getId()})

答案 2 :(得分:0)

尚未为您的视图模型设置变量"topic"。在您的控制器中,您将需要以下内容:

myModelData.put("topic", topicId);