Что делают атрибуты пути и значения в теге ввода в JSP и как префикс формы влияет на них? - PullRequest
4 голосов
/ 11 ноября 2010

Просто хотелось получить четкий ответ на прямой вопрос - результаты Google были повсеместны или не относятся к комбо, которые вы увидите ниже.

Я, как правило, новичок в JSP и использую следующий код.

<form:input id="theId" path="path.copied.directly.fromSomewhereElse"
    cssClass="contentTextInput" cssStyle="width: 229px" />

Когда я помещаю это на свою страницу JSP и загружаю свой веб-сайт, она работает нормально и выглядит так, как это определяет мой cssClass. Тогда я начинаю возиться с этим, потому что я хочу, чтобы он отображал значение по умолчанию значение .

<form:input id="theId" path="path.copied.directly.fromSomewhereElse"
    value="blah" cssClass="contentTextInput" cssStyle="width: 229px" />

Внезапно, HTTP 500, org.apache.jasper.JasperException! Поэтому я решаю удалить путь в целом, оставив значение. Это всего лишь шаг 1 в том, что я знаю, работает из-за предыдущего опыта. Код сейчас:

<form:input id="theId" value="someClass.valueIWantAsDefault" 
    cssClass="contentTextInput" cssStyle="width: 229px" />

Это на самом деле тоже вызывает исключение - но затем я удаляю префикс формы, и это работает - в основном. Видите ли, эффекты cssClass теперь исчезли; это выглядит как обычное, незатронутое текстовое поле ввода. Вот код на данный момент.

<input id="theId" value="someClass.valueIWantAsDefault" 
    cssClass="contentTextInput" cssStyle="width: 229px" />

Что именно эти атрибуты (и префикс) делают, чтобы это работало как сочетание и совпадение?

1 Ответ

6 голосов
/ 11 ноября 2010

Я предполагаю, что вы имеете дело со страницей jsp, которая использует библиотеку пользовательских тегов JSP, которая является частью Spring Framework.Вот документы для тега <form:input> .value не является допустимым атрибутом для этого пользовательского тега, как вы можете видеть в ссылке на документы, которую я предоставил выше.Когда вы удаляете form:, вы превращаете тег в обычный старый тег HTML <input>, поэтому ваша ошибка в этот момент исчезает.Это также, почему ваш CSS перестает работать.cssClass не является правильным атрибутом для тега HTML <input>.Это просто class.Они назвали это cssClass в пользовательском теге jsp lib, скорее всего, чтобы избежать столкновения более низкого уровня с методом Object.getClass() (длинная история, поверьте мне на слово).

...