我尝试使用Struts2 validations annotation验证表单,但它似乎不起作用,也没有在标签上显示所需的标记。下面是我的代码:
login.jsp
:
<s:form action="/Login" validate = "true">
<table>
<tr>
<td><s:label theme=”simple” required="true">Username :</s:label></td>
<td><s:textfield name="userName" theme=”simple” /></td>
</tr>
<tr>
<td><s:label theme=”simple” required="true">Password :</s:label></td>
<td><s:textfield name="password" theme=”simple” /></td>
</tr>
<tr>
<td><s:submit value="Login" /></td>
</tr>
</table>
</s:form>
字符串
LoginAction.java
:
public class LoginAction extends ActionSupport {
private String userName;
private String password;
@Validations(requiredStrings={@RequiredStringValidator(type=ValidatorType.FIELD, message="User Name can ot be empty.", fieldName="userName")})
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Validations(requiredStrings={@RequiredStringValidator(type=ValidatorType.FIELD, message="Password can ot be empty.", fieldName="password" )})
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute()
{
return SUCCESS;
}
}
型
struts.xml
:
<struts>
<package name="demo" extends="struts-default">
<action name="*" class="mypkg.action.{0}Action">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
型
有人可以帮助和注意到,如果有什么问题,我的代码?
1条答案
按热度按时间zazmityj1#
如果你使用
Validations
annotation,那么你应该把它放在action方法上。Validator annotation放在 setter 方法上。你还使用了validate = "true"
,这意味着客户端验证。确保你有JavaScript(在<s:head/>
的帮助下)和主题,如xhtml
或css_xhtml
应用到表单,使验证错误可见。即主题simple
在这里不工作,从字段中删除它。如果没有指定主题,那么Struts 2将默认使用xhtml主题。
推荐人: