2010-10-01 2 views
1

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

<html:xhtml /> 

наверху наших JSP.

После этого, JSPs используя

<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?

ответ

0

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

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

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

0

1) Для вашего соответствия XHTML, а сделать это:

<html:html xhtml="true"> 

</html:html> 

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

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

в

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

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

Раствор можно было бы добавить идентификатор к действию, как:

<html:form method="post" action="/foo.do?id=blah" styleId="bar"> 
Смежные вопросы