Как сгенерировать запрос на загрузку с html-страницы на контроллер Spring MVC

<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 я буду использовать этот enrollmentNo.

У меня есть класс, который будет генерировать сертификат для учащегося, извлекая данные, используя номер учащегося enrollmentNo.

и ответ возвращается, и файл загружается (это файл 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.

Итак, в чем проблема, с которой вы столкнулись? Мол, что работает не так?

hooknc 30.05.2019 19:27

Я не могу получить доступ к контроллеру с html-страницы. а также не знаю, что я должен вернуть, чтобы сгенерированный сертификат был загружен.

Prince Kumar 30.05.2019 19:30

Если у вас есть минутка, не могли бы вы опубликовать html, который должен вызывать ваш контроллер?

hooknc 30.05.2019 19:33

Я добавил код в вопрос, пожалуйста, хорошо.

Prince Kumar 30.05.2019 19:40

Ну, это проясняет ситуацию, спасибо за добавление html. Кнопка на самом деле ничего не делает. Он просто существует. Вы хотите, чтобы форма была отправлена? Вы хотите, чтобы javascript выполнялся? Кстати, это может превратиться в несколько вопросов о переполнении стека...

hooknc 30.05.2019 19:42

Я пробовал много кода в теге кнопки, но ничего не работает. Можете ли вы помочь мне, написав код здесь? Пожалуйста. Я новичок. Я нашел много кодов в Интернете, но я не мог понять.

Prince Kumar 30.05.2019 19:42

Я просто пытаюсь просмотреть подробности здесь. Теперь я помещаю здесь кнопку, которая будет генерировать сертификат для этого стажера. при нажатии этой кнопки сертификат будет сгенерирован с использованием этого enrollmentNo.

Prince Kumar 30.05.2019 19:44

К вашему сведению, я попытался исправить ошибки форматирования и правописания в вашем коде выше. Таким образом, приведенный ниже ответ может не полностью работать в вашей среде.

hooknc 30.05.2019 19:51

@ПринцКумар; Вы случайно не используете Spring Data? Если это так, то есть способы сделать что-то подобное вообще без большого количества кода. Дайте мне знать.

Paul Warren 31.05.2019 07:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
9
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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) и благодарю вас за помощь... Теперь вы можете помочь мне загрузить этот сертификат с помощью той же кнопки «Создать сертификат»?

Prince Kumar 30.05.2019 20:57

Я бы задал новый вопрос о переполнении стека для вашего нового вопроса.

hooknc 30.05.2019 21:18

Уважаемый hooknc, по моему вопросу, ваш ответ все еще неполный.... Я попросил сгенерировать запрос на загрузку.... Но помог мне наполовину... Я только что добрался до контроллера.... Но все равно работа по загрузке файла в ожидании...

Prince Kumar 31.05.2019 05:22

Помогите, пожалуйста, скачать сгенерированный сертификат (в формате PDF) с той же кнопки.

Prince Kumar 31.05.2019 05:23

Опубликуйте код, который генерирует PDF. И покажите нам, что у вас есть для загрузки файла. Мы сможем помочь вам оттуда. :)

hooknc 31.05.2019 17:10

Другие вопросы по теме