这样多麻烦呀,我不是很喜欢很用太多的struts标记。
一般我会将验证代码写在bean里面,然后,可以在action里调用bean里的方法进行处理,返回ActionMessage。这样多简单

解决方案 »

  1.   

    用<html:text>做成文本框,然后在struts-config.xml文件里面配置好提交到的action和需要的form bean,然后把验证做到action的validate里面啊。如果不够还可以再在action里面验证。偶是酱紫做的。但是不知道如果用到JS应该怎么办~~~
      

  2.   

    不好意思,刚才打错了,不是action的validate是form bean里面的validate。寒~~~~一个
      

  3.   

    试试这代码// Java Document
    // Java Documentimport java.io.IOException;
    import javax.servlet.http.HttpSession;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.PageContext;
    import javax.servlet.jsp.tagext.TagSupport;
    import javax.servlet.jsp.JspTagException;
    import org.apache.struts.taglib.TagUtils;
    import javax.servlet.http.HttpServletRequest;
    import com.hy.common.Common;public final class IPTag extends TagSupport {
    private String name;
    private String bean;
    private String scope;

    public IPTag(){
    name = "IP";
    bean = "org.apache.struts.taglib.html.BEAN";
    scope = null;
    }

        public int doEndTag() throws JspException {
    Common.print("IPTag.doEndTag() !!!!!! ");
    JspWriter out = pageContext.getOut();

    String value = null;

    if(scope != null){
    if(scope.equals("page")){

    HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
    value = request.getParameter(name);
    Common.print("value in requst = " + value);
    }else if(scope.equals("Context")){
    if(bean == null){
    bean = "org.apache.struts.taglib.html.BEAN";
    }
    Object objValue = TagUtils.getInstance().lookup(pageContext, bean, name, null);
    if(objValue != null){
    value = objValue.toString();

    }
    Common.print("value in pageContext = " + value + " bean : " + bean);
    }else if(scope.equals("all")){

    HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
    value = request.getParameter(name);
    if(value == null){
    Object objValue = TagUtils.getInstance().lookup(pageContext, bean, name, null);
    if(objValue != null){
    value = objValue.toString();
    }
    }
    Common.print("value in all = " + value);
    }
    }


    String subVal[] = new String[4];
     subVal[0] = "";
     subVal[1] = "";
     subVal[2] = "";
     subVal[3] = "";


    if(value != null){
    Common.print("value = [" + value+"]");
    int index1 = value.indexOf(".");
    int index2 = 0;
    if(index1 > 0){
    index2 = value.indexOf(".",index1+1);
    }
    int index3 = value.lastIndexOf(".");
    int index4 = value.length();
    Common.print(index1 + " " + index2 + " " + index3+ " " + index4);
    if(index1> 0 && index2 > index1 && index3 > index2 && index4 > index3){
    subVal[0] = value.substring(0, index1);
    subVal[1] = value.substring(index1 + 1, index2);
    subVal[2] = value.substring(index2 + 1, index3);
    subVal[3] = value.substring(index3 + 1, index4);
    }
    for(int i = 0 ; i < 4 ; i++){
    if(subVal[i] == null){
    subVal[i] = "";
    }else if(subVal[i].length() > 3){
    subVal[i] = subVal[i].substring(0,3);
    }
    }
    }




    try{
    out.println("<Script Language = 'JavaScript' SRC = '/hysecweb/JavaScript/input.js'></Script>");
    out.println("<TABLE CLASS = 'IPtab' border= '1'><TR CLASS = 'IPtr'><TD  CLASS = 'IPtd'>");
    out.println("<INPUT TYPE = 'text' CLASS = 'IP' NAME = '" + name + "1' SIZE = '3' value='"+subVal[0]+"' onpropertychange =IPInputCtl(this) onKeyDown = IPInputCtl(this) >." +
    "<INPUT TYPE = 'text' CLASS = 'IP' NAME = '" + name + "2' SIZE = '3' value='"+subVal[1]+"' onpropertychange =IPInputCtl(this) onKeyDown = IPInputCtl(this) >." +
    "<INPUT TYPE = 'text' CLASS = 'IP' NAME = '" + name + "3' SIZE = '3' value='"+subVal[2]+"' onpropertychange =IPInputCtl(this) onKeyDown = IPInputCtl(this) >." +
              "<INPUT TYPE = 'text' CLASS = 'IP' NAME = '" + name + "4' SIZE = '3' value='"+subVal[3]+"' onpropertychange =IPInputCtl(this) onKeyDown = IPInputCtl(this) > ");
    out.println("</TD></TR></TABLE>");
    if(value == null){
    out.println("<input type='hidden' name='" + name + "' value = ''/>");
    }else{
    out.println("<input type='hidden' name='" + name + "' value = '"+ value +"'/>");
    }
    }catch(Exception e){
    throw new JspTagException("IOException:" + e.toString());
    }

    return super.doEndTag();
        }

        public int doStartTag() throws JspException {

    return (SKIP_BODY);
        }

        public String getName() {

    return (this.name);
        }


        public void setName(String name) {
    this.name = name;

        }

    public String getBean(){
    return this.bean;
    }

    public void setBean(String bean){
    this.bean = bean;
    }

    public String getScope(){
    return this.scope;


    public void setScope(String scope){
    this.scope = scope; 
    }

    public void release(){
            super.release();
            this.name  = "IP";
    this.bean  = "org.apache.struts.taglib.html.BEAN";
    this.scope = null;
        }
    }