Я использую структуру проверки struts2 для проверки данных в клиенте.Я прочитал много руководств по валидации, но все еще не могу найти, где я совершил ошибку.
Я использую Struts 2.2.3.Конфигурация struts.xml выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="admin" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error" />
</global-exception-mappings>
<action name="login" class="com.text.LoginAction">
<result name="login">/login_page.jsp</result>
<result name="success">/login_success.jsp</result>
<result name="error">/login_page.jsp</result>
</action>
</package>
</struts>
В index.jsp я захожу в действие struts2 и захожу на страницу входа.
<body>
<a href="login!handle.action">Go to Login Page</a>
</body>
login_page.jsp
<body>
<s:form action="login!login.action" validate="true" method="post">
<s:textfield name="username" label="Username"/>
<s:textfield name="password" label="Password"/>
<s:submit value="Submit"/>
</s:form>
</body>
LoginAction, аннотация @SkipValidation используется для пропуска проверки для конкретного метода
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String login() {
if (username.equalsIgnoreCase("root") && password.equalsIgnoreCase("1234")) {
return "success";
} else {
return "fail";
}
}
@SkipValidation
public String handle() {
return "login";
}
}
LoginAction-validation.xml в том же пакете с LoginAction.
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Login name is required</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Password is required</message>
</field-validator>
</field>
</validators>
После добавленияvalidate = "true" в s: form, я иду на страницу и пытаюсь получить доступ к validation.js и utils.js.Это файл отчета об ошибках Apache Tomcat.Я думаю, это означает, что проверка на стороне клиента не работает.Может кто-нибудь помочь мне это исправить?Заранее спасибо.