【问题标题】:How to generate a download request from html page to controller of spring mvc如何生成从html页面到spring mvc控制器的下载请求
【发布时间】:2019-10-16 09:02:00
【问题描述】:

<html>
<head>
<title>Student Registration</title>
</head>

<body>
	<h3 align="center">New Trainee Registration</h3>
	
   		<table align="center" cellpadding="10">

   			<!-- First Name -->
   			<tr>
   				<td>First Name</td>
   				<td>${traineeData.fName}</td>
   			</tr>

   			<!-- Last Name -->
   			<tr>
   				<td>Last Name</td>
   				<td>${traineeData.lName}</td>
   			</tr>

   			<!-- Father's Name -->
   			<tr>
   				<td>Father's Name</td>
   				<td>${traineeData.fatherName}</td>
   			</tr>

   			<!-- Mobile Number -->
   			<tr>
   				<td>Mobile No.</td>
   				<td>${traineeData.mobile}</td>
   			</tr>
   			<tr>
   				<td>Joining Date</td>
   				<td>${traineeData.joiningDate}></td>
   			</tr>
   			<tr>
   				<td>Grade</td>
   				<td>${traineeData.grade}</td>
   			</tr>

   			<tr>
   				<td>Gender</td>
   				<td>${traineeData.gender}</td>
   			</tr>
   			<!-- Course -->
   			<tr>
   				<td>COURSES<br />APPLIED FOR
   				</td>
   				<td>${traineeData.course}</td>
   			</tr>

   			<tr>
   				<td>Joining Date</td>
   				<td>${traineeData.joiningDate}</td>
   			</tr>

   			<!-- Submit and Reset -->
		<tr>
			<td colspan="2" align="center">
				<button type="button" >Generate Certificate</button>
			</td>
	</tr>
	</table>
</body>
</html>

假设我的 HTML 页面上有一个下载按钮。单击此按钮时,请求会通过 spring MVC 框架的控制器以及“enrollmentNo”。

在 Controller 类上,我将使用这个注册号。

我有一个班级,它将通过使用学生的注册号获取数据来为学生生成证书。

响应返回并下载一个文件(由我预先创建的类生成的 pdf 文件)

我尝试了很多方法,但没有得到我想要的。

@RequestMapping(value = "/generateCertificate")
public void generateCertificate(@RequestParam("traineeData.enrollmentNo") int enrollmentNo) {

    System.out.println("you in /generateCertificate");

    // I don't know what should I return... 
    // please change return type accordingly...
}

我想要一个名为“生成证书”的 HTML 页面上的按钮。代码应该简单正常,这里可以使用Ajax。

【问题讨论】:

  • 那么,您面临的问题是什么?比如,什么工作不正常?
  • 我无法从 html 页面访问控制器。也不知道我应该返回什么以便下载生成的证书。
  • 如果您有时间,能否请您发布应该调用您的控制器的 html?
  • 我已经在问题中添加了代码,拜托了。
  • 嗯,这让事情更清楚了,感谢您添加 html。该按钮实际上并没有做任何事情。它只是存在。您要提交表单吗?你想让javascript执行吗?顺便说一句,这可能会变成多个堆栈溢出问题...

标签: java html spring-mvc


【解决方案1】:

您的按钮实际上并没有做任何事情,很有用。

在你的按钮周围试试这个代码...

<tr>
    <td colspan="2" align="center">
        <form action="/generateCertificate" method="GET">
            <input type="hidden" name="enrollmentNo" value="${traineeData.enrollmentNo}"
            <button type="submit">Generate Certificate</button>
        </form>
    </td>
</tr>

那么你的控制器将需要稍微改变......

@RequestMapping(value = "/generateCertificate")
public void generateCertificate(@RequestParam("enrollmentNo") int enrollmentNo) {

    // The @RequestParam was changed to the name of the param from the form and not the object/value.
}

【讨论】:

  • 我终于在一个目录(比如D目录)中生成了证书,谢谢你的帮助...现在你能帮我在同一个“生成证书”按钮上下载这个证书吗?
  • 我会针对您的新问题提出一个新的堆栈溢出问题。
  • 亲爱的 hooknc,根据我的问题,您的回答仍然不完整.. 我要求生成下载请求.. 但帮了我一半...我刚刚到达控制器.. ..但文件下载工作仍在等待中...
  • 请帮我从同一个按钮下载生成的证书(PDF格式)。
  • 发布生成pdf的代码。并告诉我们你有什么下载文件。我们将能够从那里帮助您。 :)
猜你喜欢
  • 1970-01-01
  • 2017-01-31
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2016-03-16
相关资源
最近更新 更多