报错信息如下:org.apache.jasper.JasperException: ValidatorResources not found in application scope under key "org.apache.commons.validator.VALIDATOR_RESOURCES"
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause javax.servlet.ServletException: ValidatorResources not found in application scope under key "org.apache.commons.validator.VALIDATOR_RESOURCES"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.test_jsp._jspService(test_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)源码如下:
ActionForm:
package org.demo.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class DeptForm extends ActionForm {
private String dname;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
ActionErrors errors = new ActionErrors();
if(this.dname==null||"".equals(this.dname)){
errors.add("dname",new ActionMessage("dname.null"));
}
return errors;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
}
Action如下:
package org.demo.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.demo.struts.form.DeptForm;
public class DeptAction extends DispatchAction {
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DeptForm deptForm = (DeptForm) form;// TODO Auto-generated method stub
System.out.println("testint_______________"+deptForm.getDname());
return null;
}
}
struts-config.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="deptForm" type="org.demo.struts.form.DeptForm" />  </form-beans>  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="deptForm"
      input="/dept.jsp"
      name="deptForm"
      parameter="status"
      path="/dept"
      scope="request"
      type="org.demo.struts.action.DeptAction">
      <set-property property="cancellable" value="true" />
    </action>
  </action-mappings>
  <message-resources parameter="org.demo.struts.ApplicationResources" />
</struts-config>ApplicationResources.properties如下:dname.null =dept can not null
jsp如下:
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<html:html lang="true">
  <head>
    <title>test.jsp</title>
  </head>
  
  <body>
    <html:form action="dept.do?status=insert" method="post"> 
    输入部门名称:<html:text property="dname"/>
<html:submit value="提交"/>
    </html:form>
    <html:javascript formName="deptForm"/>
  </body>
</html:html>
注:(此demo加入了hibernate支持)困扰很久的问题亟待解决,解决了给100分谢谢!

解决方案 »

  1.   

    说明:jsp文件在没有加入: <html:javascript formName="deptForm"/>
    时是正常的,当加入该标签时: <html:javascript formName="deptForm"/>
    就报此错误
      

  2.   

    html:javascript  这个是什么标签呀》是不是这里面引起了冲突
      

  3.   

    <html:javascript formName="deptForm"/>是不是应该这样的?
    <html:form name = "deptForm"/>
      

  4.   

    <html:javascript>标签的formName属性指定需要验证的表单的名字。该标签能够访问为表单配置的验证规则包含的<javascript>元素,把它包含的脚本写到JSP网页中,生成validateXXX()的函数,XXX代表表单的名字。     当用户在表单上按下提交按钮后,就会调用<html:javascript>标签生成的JavaScript脚本的函数并执行。验证失败,不会提交到服务器端。----你确定给这次表单请求配置好了 校验规则?
      

  5.   

    问一下,在项目中加入struts,hibernate的顺序会不会造成此错误呢?
      

  6.   


    如果你是用工具加的可能会,MyEclipse的插件加的时候可能会去改公共配置文件。你可以先测试struts是否已经可以成功获取请求。再去看校验功能是否能用