郁闷,写了个简单的测试用例,结果这个校验始终不执行 ,网上没有需找到答案,请大侠赐教
前台:login.jsp <s:fielderror></s:fielderror>
<s:form action="Login" validate="true" method="post">
<s:textfield label="用户名" name="username" />
<s:textfield label="密码" name="password" />
<s:submit value="登录" />
</s:form>action:LoginAction.java
package com.study.action;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;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 execute() throws Exception {
System.out.println("execute() runing......");
if("hyq".equals(getUsername())&&"123".equals(getPassword())){
ActionContext.getContext().getSession().put("user", getUsername());
return "success";
}else{
return "error";
}
}
//增加校验但没有执行,为什么呢?
public void validateExecute() {
System.out.println("validate() runing......");
if(getUsername()==null||"".equals(getUsername().trim())){
addFieldError("username","username is must!");
}
if(getPassword()==null||"".equals(getPassword().trim())){
addFieldError("password","password is must!");
}
}}
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Include webwork default (from the Struts JAR). -->
<include file="struts-default.xml"/> <!-- Configuration for the default package. -->
<package name="strutsqs" extends="struts-default">
<!-- Default interceptor stack. -->
<!-- <default-interceptor-ref name="paramsPrepareParamsStack"/>-->
<action name="Login" class="com.study.action.LoginAction">
<result name="input">/jsp/login.jsp</result>
<result name="success">/jsp/welcome.jsp</result>
<result name="error">/jsp/errors.jsp</result>
<!-- we don't need the full stack here -->
<interceptor-ref name="basicStack"/>
</action>
<action name="GetBooks" class="com.study.action.GetBooksAction" >
<result name="login">/jsp/login.jsp</result>
<result name="success">/jsp/showBook.jsp</result>
</action>
</package>
</struts>
前台:login.jsp <s:fielderror></s:fielderror>
<s:form action="Login" validate="true" method="post">
<s:textfield label="用户名" name="username" />
<s:textfield label="密码" name="password" />
<s:submit value="登录" />
</s:form>action:LoginAction.java
package com.study.action;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;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 execute() throws Exception {
System.out.println("execute() runing......");
if("hyq".equals(getUsername())&&"123".equals(getPassword())){
ActionContext.getContext().getSession().put("user", getUsername());
return "success";
}else{
return "error";
}
}
//增加校验但没有执行,为什么呢?
public void validateExecute() {
System.out.println("validate() runing......");
if(getUsername()==null||"".equals(getUsername().trim())){
addFieldError("username","username is must!");
}
if(getPassword()==null||"".equals(getPassword().trim())){
addFieldError("password","password is must!");
}
}}
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Include webwork default (from the Struts JAR). -->
<include file="struts-default.xml"/> <!-- Configuration for the default package. -->
<package name="strutsqs" extends="struts-default">
<!-- Default interceptor stack. -->
<!-- <default-interceptor-ref name="paramsPrepareParamsStack"/>-->
<action name="Login" class="com.study.action.LoginAction">
<result name="input">/jsp/login.jsp</result>
<result name="success">/jsp/welcome.jsp</result>
<result name="error">/jsp/errors.jsp</result>
<!-- we don't need the full stack here -->
<interceptor-ref name="basicStack"/>
</action>
<action name="GetBooks" class="com.study.action.GetBooksAction" >
<result name="login">/jsp/login.jsp</result>
<result name="success">/jsp/showBook.jsp</result>
</action>
</package>
</struts>
解决方案 »
- 一对多,一修改后,多的外键被清空了。
- Google SVN问题
- 大侠教我运行Hibernate的例子
- hibernate 处理Orcale中char类型字段的问题
- jacob调VB的dll的问题
- 高手帮忙,axis1.3在WebLogic Server 9.2部署报错,另外axis1.3的源码有没地方可下载?
- 用过installanywhere的进来帮下忙
- 求助:jsp+jdbc无法插入mysql
- 惨啊,要交毕业论文了,高手求救啊!!!关于Java与COM通信
- 用jxl导出不能打开,第一次保存液不行,要重新下载
- Path cn.itcast.LoginAction does not start with a "/" character
- 冰天雪地跪求解决新手S2SH框架问题
validate() 也用过 ,但也没有执行。
<include file="struts-default.xml"/>还有上面这个引用有什么特别的意义吗?