校验文件应该是在实例化action后进行校验,但是这次是校验文件完全不起作用,相当于没有执行一样.LoginAction.javapackage oo.account.action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {
private String email;
private String password; 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 exectue() throws Exception {
return INPUT;
}
}LoginAction-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="email">
<field-validator type="requiredstring">
<!-- 去空格 -->
<param name="trim">true</param>
<message>电子邮件不能为空</message>
</field-validator> </field> <field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不能为空</message>
</field-validator>
</field></validators>
applicationContext.xml的配置
<!-- 反射注入action -->
<bean id="loginAction" class="oo.account.action.LoginAction"></bean>
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>
<include file="struts-default.xml" />
<package name="oo" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
<result name="loginout">/index.jsp</result>
<result name="input">/index.jsp</result>
</global-results>
<action name="login" class="loginAction">
<result name="input">/index.jsp</result>
</action>
</package>
</struts> login.jsp
<s:form action="login.action" method="post">
<s:div id="title">已注册用户</s:div>
<s:div id="left_tips">为保护您的个人信息,当你完成购物后,请退出登录并关闭浏览窗口。请确保不要让您的电脑长时间处于无人照看或闲置状态。</s:div>
<s:div id="left_content">
<s:textfield label="电子邮件地址" name="email"></s:textfield>
<br />
<s:password label="密码" name="password"></s:password>
<s:submit value="登录"></s:submit>
</s:div>
</s:form>
在电子邮件地址和密码处没有输入任何东西,点击登录后,就直接跳到index.jsp去了!!!!!!!
而且还有个比较奇怪的是,我把result改为<result name="input">/login.jsp</result>,也就是登录页面,点击登录后,它居然又可以检验,请问大家,这是怎么回事?我要怎么做才可以正常使用?
private String email;
private String password; 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 exectue() throws Exception {
return INPUT;
}
}LoginAction-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="email">
<field-validator type="requiredstring">
<!-- 去空格 -->
<param name="trim">true</param>
<message>电子邮件不能为空</message>
</field-validator> </field> <field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不能为空</message>
</field-validator>
</field></validators>
applicationContext.xml的配置
<!-- 反射注入action -->
<bean id="loginAction" class="oo.account.action.LoginAction"></bean>
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>
<include file="struts-default.xml" />
<package name="oo" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
<result name="loginout">/index.jsp</result>
<result name="input">/index.jsp</result>
</global-results>
<action name="login" class="loginAction">
<result name="input">/index.jsp</result>
</action>
</package>
</struts> login.jsp
<s:form action="login.action" method="post">
<s:div id="title">已注册用户</s:div>
<s:div id="left_tips">为保护您的个人信息,当你完成购物后,请退出登录并关闭浏览窗口。请确保不要让您的电脑长时间处于无人照看或闲置状态。</s:div>
<s:div id="left_content">
<s:textfield label="电子邮件地址" name="email"></s:textfield>
<br />
<s:password label="密码" name="password"></s:password>
<s:submit value="登录"></s:submit>
</s:div>
</s:form>
在电子邮件地址和密码处没有输入任何东西,点击登录后,就直接跳到index.jsp去了!!!!!!!
而且还有个比较奇怪的是,我把result改为<result name="input">/login.jsp</result>,也就是登录页面,点击登录后,它居然又可以检验,请问大家,这是怎么回事?我要怎么做才可以正常使用?
建议你使用jquery,简简单单就可以实现
在后面还要用到集合类型的输入校验,这样的话就不知道jquery支不支持了
最主要是对jquery不懂 没怎么用过
这应该不是这个问题 它们就根本没有执行那个校验文件
关于看struts2的api,主要是找到那个ActionSupport类后 ,都没看出什么来
可能我找错了
<global-results>
<result name="error">/error.jsp</result>
<result name="loginout">/index.jsp</result>
<result name="input">/index.jsp</result>
</global-results>中有个input 当你提交action返回的时候 当然跳转到index.jsp
也就是说你下面的input压根没有匹配,所所以建议你把上面的换个名字试试
return INPUT;
前加上@override
LZ配置校验失败到index.jsp,没有什么问题啊
<action name="login" class="loginAction">
<result name="input">/index.jsp</result>
</action>可以在index.jsp页面加上<s:fielderror />标签。就能知道是否校验了啊!