我有一个使用Spring设计的Java web服务和一个与之对应的jsp文件。
为了进一步说明,我有一个名为 infosys.jsp WEB-INF/views 的 jsp 文件,可以像 https://localhost:8080/admin/infosys?id=34 一样访问它。我也可以传入参数,如图所示。
在我的网络 Controller 中我有一个方法叫做
@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 数据库集成。如果我需要,我该如何写入数据库并访问??
编辑: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>
最佳答案
您的 Controller 的处理程序方法应该返回一个带有 View 名称的字符串(没有@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 将该返回值转换为 View 的相对路径。您可以将其作为 bean 添加到您的 Web 应用程序上下文配置文件中,通常位于 /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
-> InternalResourceViewResolver -> /WEB-INF/views/admin/infosys.jsp
;
这是它的工作原理:
- Http请求说,Tomcat
- 请求由 Spring 的 DispatcherServlet 处理
- DispatcherServlet 根据@RequestMapping 找到正确的HandlerMethod
- DispatcherServlet 创建一个 Model 实例并通过引用传递给 HandlerMethod
- HandlerMethod 将 View 名称返回给 DispatcherServlet
- Spring 将模型添加到请求范围
- DispatcherServlet 从 InternalResourceViewResolver 获取 View 路径
- 找到正确的 JSP
- 将请求转发给 JSP
在您的 JSP 文件中,简单地将 ${id}
放在页面的任何位置,这将显示“id”模型属性的值。
关于java - 从Java文件写入jsp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24893734/