我有一个使用Spring设计的Java Web服务和一个与之对应的jsp文件。
为了进一步说明,我有一个名为infosys.jsp WEB-INF / views的jsp文件,可以访问https:// localhost:8080 / admin / infosys?id = 34。我也可以传递参数,如图所示。
在我的网络控制器中,我有一个名为
的方法 @RequestMapping(value = "/infosys", method = RequestMethod.GET)
public @ResponseBody void getId(@RequestParam(value="id", required=false) String id) {
.......
}
我已调试并且此方法有效,我可以访问传递它的id。我试图在我的jsp文件中显示id。例如,如果我说https:// localhost:8080 / admin / infosys我希望能够显示34.如何写入我的jsp文件?如果我需要存储和访问,我有一个MySQL数据库集成。如果我需要,我该如何写入DB并访问??
编辑:infosys.jsp文件:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page isELIgnored ="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Info Sys</title>
</head>
<body>
<spring:url value="/" var="homeUrl"/>
<a href="${homeUrl}">Home</a>
<BR><BR>
</body>
</html>
答案 0 :(得分:6)
你的Controller的Handler方法应该返回一个带有视图名称的String(没有@ResponseBody)。您还应该在模型中设置ID。
@RequestMapping(value = "/infosys", method = RequestMethod.GET)
String getId(@RequestParam(value="id", required=false) String id, org.springframework.ui.Model model) {
model.addAttribute("id", id);
return "admin/infosys";
}
您应该使用Spring的InternalResourceViewResolver将返回的值转换为视图的相对路径。您可以在Web应用程序上下文配置文件中将其添加为bean,通常位于/WEB-INF/mvc-dispatcher-servlet.xml
。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
admin/infosys
- &gt; InternalResourceViewResolver - &gt; /WEB-INF/views/admin/infosys.jsp
;
以下是它的工作原理:
在JSP文件中,简单地将${id}
放在页面的任何位置,这将显示“id”模型属性的值。