java - 从Java文件写入jsp文件

标签 java mysql spring jsp spring-mvc

我有一个使用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;

这是它的工作原理:

  1. Http请求说,Tomcat
  2. 请求由 Spring 的 DispatcherServlet 处理
  3. DispatcherServlet 根据@RequestMapping 找到正确的HandlerMethod
  4. DispatcherServlet 创建一个 Model 实例并通过引用传递给 HandlerMethod
  5. HandlerMethod 将 View 名称返回给 DispatcherServlet
  6. Spring 将模型添加到请求范围
  7. DispatcherServlet 从 InternalResourceViewResolver 获取 View 路径
  8. 找到正确的 JSP
  9. 将请求转发给 JSP

在您的 JSP 文件中,简单地将 ${id} 放在页面的任何位置,这将显示“id”模型属性的值。

关于java - 从Java文件写入jsp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24893734/

相关文章:

mysql - 如何找到sql表的最佳索引?

java - 按类型接线的 Spring 比按名称接线慢

java - NullPointerException 问题

java - 如何在 hibernate 中将表列与另一个表列映射

java - 使用 Windows Auth 到 SQL 2014 命名实例的 JDBC 连接字符串

mysql - SQL:获取嵌套集中节点的直接下属

java.lang.AssertionError : Content type not set - Spring Controller Junit Tests 错误

java - Spring在 Controller 类中初始化Errors接口(interface)

java - MDB JBoss 6.1 服务器端没有响应

java - 任意 JRE 上的 "java.lang.InternalError: HTHEME is null"(Windows)