21

Struts 2 automatically generate HTML table for it's <s:form> tag. How can I disable it? Any help will be appreciated. Thank You.

zawhtut
  • 8,335
  • 5
  • 52
  • 76

4 Answers4

30

Struts2 have theme generation functionality based on which it generares either Table based HTMl code for its tags default is x_html which is your case . You can avoid this by setting theme as simple on page level or each tags has theme property which will generate div based html contents

<s:form name="test" theme="simple">

or you can set theme for entire page as below static value

<s:set name="theme" value="'simple'" scope="page" />

property

<s:set name="theme" value="%{myTheme}" scope="page" />

you can set it across entire application by

<constant name="struts.ui.theme" value="simple" />
Umesh Awasthi
  • 23,407
  • 37
  • 132
  • 204
8

Just add

<struts>
    <constant name="struts.ui.theme" value="simple" />
    <package name="default" extends="struts-default">

constant name="struts.ui.theme" value="simple" in struts.xml. It wont apply struts default themes.

Muthu
  • 1,550
  • 10
  • 36
  • 62
2

Another possibility would be using the usual HTML tag.

Akku
  • 4,373
  • 4
  • 48
  • 67
1

setting simple theme avoids the use of advanced validation in forms (i think). you should use css_xhtml template either adding following line to your struts.xml

<constant name="struts.ui.theme" value="css_xhtml" />

or specifically in concrete areas of your code, like form

<s:form name="test" theme="simple">

This way you get html elements with their css classes assigned, ready to be styled with css.