我希望我的错误信息显示在我的字段的右侧。但是,如果密码字段有错误,则密码的错误消息位于userName字段的右侧。为什么它会这样?基于w3schools我的格式是正确的。错误消息密码不正确应位于密码字段的右侧。
这是我在表格中遵循的模式。
<table border="1">
<tr>
<td>UserNAme</td>
<td>UserName Error message</td>
</tr>
<tr>
<td>Password</td>
<td>Password Error Message</td>
</tr>
</table>
这是我的Struts2代码。
<!--Struts2 log-in-->
<s:form method="POST" action="login" theme="simple" >
<table border="1" >
<tr>
<td>
UserName:<s:textfield label="UserName" key="userName" maxLength="20"/>
</td>
<td class="errorMessage">
<s:property value="fieldErrors.get('userName').get(0)" />
</td>
</tr>
<tr>
<td>
PassWord:<s:password label="Password" key="password" maxLength="20"/>
</td>
<td class="errorMessage">
<s:property value="fieldErrors.get('password').get(0)" />
<td>
</tr>
<tr>
<td>
<s:submit value="Login" align="center"/>
</td>
</tr>
</table>
</s:form>
This is the html result of the struts.
<!--Struts2 log-in-->
<form id="login" name="login" action="/springtest/login.action" method="POST">
<table border="1" >
<tr>
<td>
UserName:<input type="text" name="userName" maxlength="20" value="tok" id="login_userName"/>
</td>
<td class="errorMessage">
Username don't exist.
</td>
</tr>
<tr>
<td>
PassWord:<input type="password" name="password" maxlength="20" id="login_password"/>
</td>
<td class="errorMessage">
<td>
</tr>
<tr>
<td>
<input type="submit" id="login_0" value="Login"/>
</td>
</tr>
</table>
</form>
答案 0 :(得分:1)
这是因为Struts2使用Themes&amp;模板。
这可能会对你有帮助。
http://www.mkyong.com/struts2/working-with-struts-2-theme-template/
答案 1 :(得分:0)
根据您的问题CSS将扮演主角,只需通过动作类获取字段错误。但是您应该在动作类中指定错误。
存在两种类型的错误
1)字段错误 2)动作错误
此字段错误将在应用程序的上方显示错误。 然后通过css你可以对齐字段错误。
要获得更多优惠,您可以使用此链接,这将有所帮助
答案 2 :(得分:0)
我也遇到了同样的问题,我使用xml进行了验证,错误消息不在正确的位置,所以尝试了这个解决方案看看它是否有帮助你
<td align="left">
<div><s:fielderror fieldName="birthDate" /></div>
<sx:datetimepicker name="birthDate" value="%{employee.birthDate}" />
</td>