我在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标签。
答案 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
答案 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" />