如何在struts2标签中使用CSS样式?

时间:2012-12-15 15:30:03

标签: struts2

我在struts2应用程序中使用metro CSS主题。我正在使用带有CSS类的html标签,工作正常。但是在创建验证逻辑时,我发现它确实验证了表单,但没有显示任何错误。

<form action="register.action" method ="post" validate="true">
 <div class="input-control text span3">
    <input type="text" name="username" placeholder="Enter User Name" value="" />
    <span class="helper"></span>
 </s:div> 
</form>

然后我切换到struts2 html标签,它开始显示错误,但现在我没有附加样式。我使用了struts2 html标签的cssClass属性来为form和div标签提供样式,但是在将<input type="text">标签更改为<s:textfield>后,所有附加到输入框的样式都消失了。

请建议我如何使用保留CSS样式的struts标签。

2 个答案:

答案 0 :(得分:8)

您可以使用cssClass标记的<s:textfield>属性,并添加CSS样式来设置表单样式。

<s:textfield cssClass="mytext" ... />

//css
.mytext {
}

值得注意的是,Struts2标签默认使用 xhtml 主题。因此它会生成大量的HTML代码和表单。您可能希望将默认主题更改为 css_xhtml 以应用自己的样式,而不是使用Struts2默认值。

struts.properties文件中添加以下内容。     struts.ui.theme = css_xhtml

参考:Override Default Theme in Struts 2

答案 1 :(得分:4)

如果您已经拥有自己的样式和元素的所有JSP-s使用Struts2 simple主题。此主题不会创建其他元素,也不会显示验证错误。但您可以使用fielderror标记来显示验证错误http://struts.apache.org/2.x/docs/fielderror.html。所以你的形式会是这样的:

<form action="register.action" method ="post" validate="true">
  <div class="input-control text span3">
    <s:fielderror fieldName="username"/>
    <s:textfield name="username" placeholder="Enter User Name"/>
    <span class="helper"></span>
  </s:div>
</form>

您可以使用struts.xml常量在struts.ui.theme文件中为整个应用程序定义默认主题。

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