嘿伙计们,我是Struts 2&的新手。我无法找到我的错误。我已经看到类似的问题,但直到现在我都没有成功。
我正在使用bundle_validators在Struts2中进行验证,但问题是当我执行程序时,RUNTIME没有验证。
我的豆子& validation.xml位于src / actions包中 -
我的ActionLogin.java
package actions;
import com.opensymphony.xwork2.ActionSupport;
public class ActionLogin extends ActionSupport {
private String name,email,password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
return "success";
}
}
注册-validation.xml中
<?xml version="1.0" encoding="UTF-8"?>
<!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="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>User Name is required.</message>
</field-validator>
</field>
<field name="email">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Email is required.</message>
</field-validator>
</field>
</validators>
我的struts.xml位于WEB-INF / classes目录
中<?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>
<include file="struts-default.xml"/>
<constant name="struts.devMode" value="true" />
<package name="actions" namespace="/" extends="struts-default">
<action name="register" class="actions.ActionLogin" method="execute">
<result name="success">/welcome.jsp</result>
<result name="input">index.jsp</result>
</action>
</package>
</struts>
我的index.jsp文件是
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<%@taglib uri="/struts-dojo-tags" prefix="d" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<STYLE type="text/css">
.errorMessage{color:red;}
</STYLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="register">
<s:textfield name="name" label="name"></s:textfield>
<s:password name="password" label="Password"></s:password>
<s:textfield name="email" label="Email"></s:textfield>
<s:submit value="login"></s:submit>
</s:form>
</body>
</html>
请帮我找出我的错误。谢谢你提前
答案 0 :(得分:1)
您必须将验证xml文件的名称更改为:ActionLogin-validation.xml
用于验证的Struts2约定类似于ActionClass.java的ActionClass-validation.xml。
两个文件(.java和.xml)必须位于同一个包中
在您的情况下,操作class是:ActionLogin.java,因此验证文件必须是ActionLogin-validation.xml