Получение атрибута [modelAttribute] недопустимо для тега [form] в соответствии с TLD - PullRequest
1 голос
/ 08 октября 2019

Я совершенно новичок в Spring и получаю сообщение об ошибке " Получение атрибута [modelAttribute] недопустимо для тега [form] согласно TLD " при выполнении кода ниже.

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Personal Info Page</title>
</head>
<body>
<center><h1>Personal Info Page</h1></center>
<form:form  method="post" action="/user-web/processuserregistration.do" modelAttribute="user" >
      <table>
          <tr>
              <td>First Name:</td>
              <td><form:input path="firstName"/></td>
          </tr>
          <tr>
              <td>Last Name:</td>
              <td><form:input path="lasttName"/></td>
          </tr>

          <tr>
              <td>Middle Name:</td>
              <td><form:input path="middleName"/></td>
          </tr>

          <tr>
              <td colspan="2">
                  <input type="submit" value="Save Changes" />
              </td>
          </tr>
      </table>

</form:form>
</body>
</html>

После выполнения фрагмента кода я получаю сообщение об ошибке ниже:

Oct 07, 2019 9:31:44 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/user-web] threw exception [/jsp/person.jsp (line: [9], column: [0]) Attribute [modelAttribute] invalid for tag [form] according to TLD] with root cause
org.apache.jasper.JasperException: /jsp/person.jsp (line: [9], column: [0]) Attribute [modelAttribute] invalid for tag [form] according to TLD
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:292)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:115)

Могу ли я что-нибудь сделать, чтобы устранить ошибку? Я совершенно новичок в весне

1 Ответ

0 голосов
/ 08 октября 2019

Ну,

Я хочу сказать заранее, я не разработчик JSP, но я использую Java и HTML / CSS / JS весь день. Я не скомпилировал страницу JSP, но я знаю, что это просто HTML с некоторым скриптом. В чем я могу вам помочь, так это просто напомнить, что слово «атрибут» при использовании с / о HTML относится к «похожим на назначение» вещам, которые находятся внутри элемента HTML. Например, вы используете HTML-элемент 'form'.

Согласно w3schools.com, на который я ссылаюсь, по крайней мере, один раз в день, когда пишу код, элементу HTML-формы разрешены следующие атрибуты. .. Текст внутри следующего «блока комментариев» дословно скопирован из следующей ссылки : https://www.w3schools.com/html/html_forms.asp

Атрибут действия Атрибут действия определяет действие, которое будет выполняться при отправке формы. Обычно данные формы отправляются на веб-страницу на сервере, когда пользователь нажимает кнопку отправки. В приведенном выше примере данные формы отправляются на страницу на сервере с именем "/action_page.php". Эта страница содержит серверный сценарий, который обрабатывает данные формы:

<form action="/action_page.php">

Если атрибут action отсутствует, действие устанавливается на текущую страницу.

ЦельАтрибут Атрибут target указывает, будет ли отправленный результат открываться на новой вкладке браузера, во фрейме или в текущем окне. Значением по умолчанию является «_self», что означает, что форма будет отправлена ​​в текущем окне. Чтобы открыть результат формы в новой вкладке браузера, используйте значение "_blank" ... Пример:

<form action="/action_page.php" target="_blank">

Другими допустимыми значениями являются "_parent", "_top" или имя, представляющее имяiframe.

Атрибут метода Атрибут метода указывает метод HTTP (GET или POST), который будет использоваться при отправке данных формы:

<form action="/action_page.php" method="get"> или

<form action="/action_page.php" method="post">

1 : https://www.w3schools.com/html/html_forms.asp

Важным моментом является: HTML-форма не можетиметь добавленную вами строку "modelAttribute = 'user'" ...

<form:form  method="post" action="/user-web/processuserregistration.do" modelAttribute="user" >

Согласно документации Oracle, TLD - это дескриптор библиотеки тегов - и он используетсяв программировании JSP. Вот ссылка на страницу TLD от Oracle. Опять же, я прошу прощения за публикацию как не JSP парень ... но, возможно, это поможет:)

https://docs.oracle.com/cd/E17904_01/web.1111/e13722/tld.htm#TAGLB120

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...