我正在显示类型文档的Java对象列表,如下所示
<c:forEach var="document" items="${documentationList}">
<tr>
<td valign="top" >${document.documentation}</td> <!-- c:out is not used here because, it is escaping HTML characters -->
<td width="75" valign="top"><a href="" ><c:out value="${document.stateCode}" /></a></td>
</c:when>
<td width="75" valign="top"><c:out value="${document.type}" /></td>
</tr>
</c:forEach>
状态代码显示为超链接。我想要做的是,当点击链接时,我想将该特定的java对象(&#39;文档&#39;)传递给java控制器,然后在新页面上显示更详细的信息。春天有没有办法解决这个问题?(我正在使用spring MVC)。
答案 0 :(得分:2)
您只是在浏览器和服务器之间使用常规HTTP。
对于GET请求,您可以在URL中传递信息,这就是它。
您应该将文档的标识符(例如?docid = N)作为URL的一部分传递给服务器,然后在新请求中将该文档加载到服务器上。
如果文档没有唯一标识符,那么您可能必须将文档存储在会话中。
答案 1 :(得分:0)
如果你计划传递状态,你可能想要使用会话。
其他一些可能有帮助的帖子 - How to use Session attributes in Spring-mvc
只是一个简单的示例 - http://www.javacodegeeks.com/2013/04/spring-mvc-session-tutorial.html
注意Spring控制器中的@SessionAttributes。
//For example inside a jsp you can use -
session.setAttribute("paramName","value");
//and in a controller
@SessionAttributes("paramName")
如果你环顾四周,有很多这样的例子。
答案 2 :(得分:0)
如果你想使用 GET 方法,那就不会那么好了 链接必须像:
<a href="yourURL?document.documentation="+${document.documentation}+"&document.stateCode="+${document.stateCode}+
"&document.type="+${document.type}></a>
和你的控制器类似。
@RequestMapping(value="/yourURL",method= RequestMethod.GET )
public ModelAndView doMyWork(@ModelAttribute("document" ) Document document)
{
}
或,
使用 POST ,您需要一个表单并在点击链接时使用javascript提交
像这样的东西:<form id="hidenForm" style="display: none;" method="POST" action="yourURL">
<input type="text" name="document.documentation" value="${document.documentation}"/>
<input type="text" name="document.stateCode" value="${document.stateCode}"/>
<input type="text" name="document.type" value="${document.type}"/>
</form>
并在javascript中使用jquery
fucntion submitHidden()
{
$("#hidenForm").submit();
}
控制器更改。
@RequestMapping(value="/yourURL",method= RequestMethod.POST)