这是我的控制器Login.java
import com.opensymphony.xwork2.ActionSupport;
public class Login extends ActionSupport {
private String userName;
private String password;
public Login() {
}
public String execute() {
return SUCCESS;
}
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;
}
}
这是我的Login-Validation.xml
<?xml version="1.0"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="userName">
<field-validator type="requiredstring">
<message>User Name is required.</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message key="password.required" />
</field-validator>
</field>
</validators>
这是我的struts.xml
<action name="NewLogin">
<result>login.jsp</result>
</action>
<action name="LoginAction" class="com.strut.Login">
<result name="success">success.jsp</result>
<result name="input">fail.jsp</result>
</action>
我正在使用struts2-core 2.5.16作为Maven插件。
问题是控制器未考虑我的validation.xml。它直接传递给execute方法并转到成功页面。
我已将控制器和验证xml放在同一软件包中。
有人可以帮我吗?预先感谢。
答案 0 :(得分:1)
您的名为“ Login-Validation.xml”的文件错误。
解决方案:
1.验证xml文件应命名为“ Login-validation.xml”。
2. <result name="input" >fail.jsp</result>
已更改为<result name="input" >login.jsp</result>
。这样会更好,更合乎逻辑。