首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

struts2 的validate()步骤不起作用

2013-04-12 
struts2 的validate()方法不起作用我用struts2 里面的validate()验证,不起作用,而且我感觉页面连action也

struts2 的validate()方法不起作用
    我用struts2 里面的validate()验证,不起作用,而且我感觉页面连action也没有进去,可是struts.xml里面配置应该都是对的啊!真的不知道是什么原因了,希望大家多多指教!

validate.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>手动校验数据</title>
</head>
<body>
  <center>
    <b>用户登录</b>
    <p>
    <s:fielderror/>
    <s:form name="validate" method="post">
      <s:textfield label="姓名" name="name"/>
      <s:textfield label="密码" name="pass"/>
      <s:submit value="提交"/>
    </s:form>
  </center>
</body>
</html>

ValidateAction.action:

package tmp.action;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class ValidateAction extends ActionSupport{
    private String name;
    private String pass;
    
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
       
    public String execute(){
    return SUCCESS;
    }
   
    
    public void validate(){
    System.out.println("validate()方法执行");
    /*if(name() == null || name().length()<6 || name().length()>15){
    addFieldError("name","用户姓名的长度不符合要求");
    }
    
    if(pass() == null || pass().length()<8 || pass().length()>20){
    addFieldError("pass","用户密码的长度不符合要求");
    }*/
    if(name == null){
    addFieldError("name","用户名不能为空");
    }
    }
}

struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
  
  <struts>
     <constant name="struts.i18n.encoding" value="gb2312"/>
     <constant name="struts.custom.i18n.resources" value="globalMessages"/>
     <include file="struts-default.xml"/>
     <package name="struts_login" extends="struts-default">
       <action name="aB" class="action.BookAction" method="addBook">


         <result name="success">/addSuccess.jsp</result>
       </action>
       <action name="aBk" class="action.BAction" method="addBook">
         <result name="success">/success.jsp</result>
       </action>
       <action name="addUser" class="action.UserAction" method="addUser">
         <result name="input">/excep.jsp</result>
       </action>
       <action name="tag1" class="com.TagAction">
         <result name="ok">succ.jsp</result>
       </action>
       <action name="tag2" class="com.TagAction" method="login">
         <result name="ok">loginSucc.jsp</result>
       </action>
       <action name="dateTag" class="com.DateTag">
          <result name="success">/dateTag.jsp</result>
       </action>
       
       <action name="checkLogin" class="com.CheckLogin">
         <interceptor-ref name="defaultStack"/>
         <interceptor-ref name="token"/>
         <result name="invalid.token">/tokenTag.jsp</result>
         <result name="success">/tokenTag.jsp</result>
       </action>
       
       <action name="msg" class="com.MsgAction">
         <result>/errorMessageTag.jsp</result>
       </action>
       
       <action name="validate" class="tmp.action.ValidateAction">
         <result name="input">/validate.jsp</result>
         <result name="success">/success.jsp</result>
       </action>
     </package>
  </struts>


[解决办法]
你的表单没写提交到哪个action吧?

加上action="validate.action"试试?
[解决办法]

引用:
你的表单没写提交到哪个action吧?

加上action="validate.action"试试?

d顶楼上

热点排行