读书人

struts 2.18客户端证验不能编译

发布时间: 2012-08-30 09:55:54 作者: rapoo

struts 2.18客户端验证不能编译
目录结构


form的 validate="false"时服务端验证的结果,其中pass111是Login-validation.xml返回的结果。



Login.java

Java code
package org.blackice.news;import com.opensymphony.xwork2.ActionSupport;public class Login extends ActionSupport {    static final long serialVersionUID = 5465432167631354L;    private String username;    private String password;        public String getUsername(){        return this.username;    }    public void setUsername(String username){        this.username = username;    }    public String getPassword(){        return this.password;    }    public void setPassword(String password){        this.password = password;    }    public String execute(){        if(this.getUsername()==null||this.getUsername().equals("")){            this.addFieldError("username", "请输入用户名");            return INPUT;        }        if(this.getPassword()==null||this.getPassword().equals("")){            this.addFieldError("password", "请输入密码");            return INPUT;        }        return SUCCESS;    }    public void validate(){        if(this.getUsername()==null||this.getUsername().equals("")){            this.addFieldError("username", "请输入用户名");        }        if(this.getPassword()==null||this.getPassword().equals("")){            this.addFieldError("password", "请输入密码");        }    }}



Login-validation.xml
XML code
<!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="username">       <field-validator type="requiredstring">            <param name="trim">true</param>            <message>User</message>       </field-validator>    </field>    <field name="password">       <field-validator type="requiredstring">            <param name="trim">true</param>            <message>pass</message>       </field-validator>    </field></validators>


struts.xml
XML code
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.custom.i18n.resources" value="messageResource"></constant><package name="org.blackice.news" extends="struts-default">    <action name="HelloWorld" class="org.blackice.news.HelloWorld">        <result>/HelloWorld.jsp</result>    </action>    <action name="Login" class="org.blackice.news.Login">        <result name="input">Login.jsp</result>        <result name="success">index.html</result>    </action></package></struts>


validators.xml

XML code
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC        "-//OpenSymphony Group//XWork Validator Config 1.0//EN"        "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd"><!-- START SNIPPET: validators-default --><validators>    <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>    <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>    <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>    <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>    <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>    <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>    <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>    <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>    <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>    <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>    <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>    <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>    <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>    <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>    <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>    <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/></validators> 



Login.jsp

Java code
<%@ page contentType="text/html; charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %><html><s:head /><body><s:form method="post" action="Login" validate="[color=#FF0000]true[/color]"><s:textfield label="用户名" name="username"></s:textfield><s:password label="密码" name="password"></s:password><s:submit value="登录"/></s:form></body></html>


当 validate = true时即产生下列错误代码,Login.jsp 500错误,无法显示网页
错误代码:
HTML code
2009-11-10 12:40:08 freemarker.log.JDK14LoggerFactory$JDK14Logger error严重: Method public java.util.List org.apache.struts2.components.Form.getValidators(java.lang.String) threw an exception when invoked on org.apache.struts2.components.Form@8b1a4fThe problematic instruction:----------==> list tag.getValidators("${tagName}") as validator [on line 46, column 9 in template/xhtml/form-close-validate.ftl] in include "/${parameters.templateDir}/xhtml/form-close-validate.ftl" [on line 25, column 1 in template/xhtml/form-close.ftl]----------Java backtrace for programmers:----------freemarker.template.TemplateModelException: Method public java.util.List org.apache.struts2.components.Form.getValidators(java.lang.String) threw an exception when invoked on org.apache.struts2.components.Form@8b1a4f    at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:130)后续的还有很长一串。。


[解决办法]
顶一下
[解决办法]
freemarker.log.JDK14LoggerFactory$JDK14Logger error
你用的jdk是1.4?
调到1.6看看
[解决办法]
是不是jdk或者是包的问题?
[解决办法]
struts2的标准jdk好像是jdk5.0
http://www.blogjava.net/hill/archive/2009/06/12/281852.html
[解决办法]
把JDK调成1.5试试
[解决办法]
刚才查了一下,在JDK1.4也可以运行,这个你参考一下吧

http://wesker0918.blog.163.com/blog/static/45344843200812610357843/
[解决办法]
学习
[解决办法]
jdk改为1.5以上的版本看看
[解决办法]
MyEclipse有自带的jdk,需要配置一下
[解决办法]
楼主设置一下eclipse的compile jdk 选择你自己安装的1.6

右键工程,选择Properties --> 找到java compiler 修改 Compiler Compliance level,指定编译时使用的JDK 6.0

读书人网 >Java Web开发

热点推荐