【问题标题】:Write to jsp file from Java file从Java文件写入jsp文件
【发布时间】:2014-09-13 15:34:11
【问题描述】:

我有一个使用 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 数据库集成。如果需要,我该如何写入数据库并访问??

编辑: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>

【问题讨论】:

  • 短语display the id in my jsp filewrite to my jsp file 表明对jsp 文件是什么的一些基本误解。这不是你“写给”的东西。它是一个用于呈现 HTML 输出的模板。
  • 对不起,我是网络服务的新手。如何呈现 HTML 输出?
  • 我不相信 Stackoverflow 是提供教程的地方。 docs.spring.io/docs/Spring-MVC-step-by-step/part1.html

标签: java mysql spring jsp spring-mvc


【解决方案1】:

您的控制器的处理程序方法应该返回一个带有视图名称的字符串(不是@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 将返回值转换为视图的相对路径。您可以将其作为 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 将视图名称返回给 DispatcherServlet
  6. Spring 将模型添加到请求范围
  7. DispatcherServlet 从 InternalResourceViewResolver 获取视图路径
  8. 找到正确的 JSP
  9. 将请求转发到 JSP

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

【讨论】:

  • 谢谢!这行得通。当我使用参数进行调用时,它现在将我重定向到 infosys.jsp 页面。但是,它不显示参数。我已经发布了 infosys.jsp 文件。我不确定在哪里添加 modelAttribute 方面来显示输出。
  • 谢谢!那行得通。另外,我想知道我是否想将此 id 保存到 mySQL 数据库中,我该怎么做?我正在使用弹簧。现在它只显示最近的 https get 调用的 id。我的最终目标是从多个 HTTPS GET 调用中保存 id 并显示所有 id
  • 这是一个全新的大型主题 :) 我建议使用 Spring Data JPA。从这里开始:petrikainulainen.net/programming/spring-framework/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多