Может ли Struts 1 в режиме XHTML иметь 2 формы, отправляющие одно и то же действие? - PullRequest
1 голос
/ 02 октября 2010

Мы конвертируем старое приложение Struts 1.x из HTML4 в XHTML1.1.Чтобы обеспечить соответствие тегам Struts, мы добавляем

<html:xhtml /> 

в начало наших JSP.

После этого JSP с использованием

<html:form method="post" action="/foo.do" styleId="bar">

бросалиследующая ошибка:

Cannot specify "styleId" when in XHTML mode as the HTML "id" attribute is already used to store the bean name

Я прочитал, что Решение состоит в том, чтобы удалить styleId и использовать имя вашего компонента формы, так как он будет вставлен в качестве идентификатора в ваш HTML.Мы можем удалить styleId, но когда 2 формы на одной странице отправляются в одно и то же действие, они заканчиваются тем же идентификатором, и XHTML больше не действителен!

Есть ли у нас какие-либо другие варианты, пока ещес помощью тегов Struts?

Ответы [ 2 ]

0 голосов
/ 02 октября 2010

1) Для вашего соответствия XML, скорее сделайте это:

<html:html xhtml="true">

</html:html>

styleId="bar" отображается в html как id="bar", и поэтому вы получаете исключение (потому что Structs генерирует следующее в html)

<html:form method="post" action="/foo.do" styleId="bar">

до

<form id="foo" action"/foo.do" id="bar">

(Имейте в виду, что id="foo" зависит от вашего заявления <action name="foo" />). StyleId используется для атрибутов элемента, например styleClass="this" будет отображать class="this"

Решением будет добавление идентификатора к действию, например:

<html:form method="post" action="/foo.do?id=blah" styleId="bar">
0 голосов
/ 02 октября 2010

Если все, что вам нужно сделать, это провести различие между двумя формами, то просто добавьте параметр к действию ...

<html:form method="post" action="/foo.do?id=bar">
...
</html:form>
...
...
<html:form method="post" action="/foo.do?id=foo">
...
</html:form>

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

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