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