在struts环境中使用validation框架出现ServletException的问题。

sui102 2004-11-26 10:08:44
服务器是resin3.0.8,在显示页面表单的时候报错。

页面报错信息:
500 Servlet Exception
javax.servlet.jsp.JspException: ServletException in '/phoneRecord/uploadRecords.jsp':
null
at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:921)
at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:460)
at _jsp._common._layouts._classiclayout__jsp._jspService(/common/layouts/classicLayout.jsp:29)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.pageservice(Page.java:571)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:155)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:129)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:272)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:112)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:237)
at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:300)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:113)
at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:211)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:331)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:464)
at com.caucho.util.ThreadPool.run(ThreadPool.java:408)
at java.lang.Thread.run(Thread.java:534)

控制台信息:
[17:47:28.336] ServletException in '/phoneRecord/uploadRecords.jsp': null
[17:47:28.336] java.lang.NullPointerException
[17:47:28.336] at com.caucho.jsp.PageContextImpl.handlePageException(PageContextImpl.java:957)
[17:47:28.336] at _jsp._phonerecord._uploadrecords__jsp._jspService(_uploadrecords__jsp.java:147)
[17:47:28.336] at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
[17:47:28.336] at com.caucho.jsp.Page.pageservice(Page.java:571)
[17:47:28.336] at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:155)
[17:47:28.336] at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:12
9)
[17:47:28.336] at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:211)
[17:47:28.336] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
[17:47:28.336] at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java
:476)
[17:47:28.336] at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java
:345)
[17:47:28.336] at com.caucho.jsp.PageContextImpl.include(PageContextImpl.java:807)
[17:47:28.336] at com.caucho.jsp.PageContextImpl.include(PageContextImpl.java:762)
[17:47:28.336] at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:101)
[17:47:28.336] at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:137)
[17:47:28.336] at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:758)
[17:47:28.336] at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:89
0)
[17:47:28.336] at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:460)
[17:47:28.336] at _jsp._common._layouts._classiclayout__jsp._jspService(_classiclayout__jsp.java:74
)
[17:47:28.336] at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
[17:47:28.336] at com.caucho.jsp.Page.pageservice(Page.java:571)
[17:47:28.336] at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:155)
[17:47:28.336] at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:12
9)
[17:47:28.336] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
[17:47:28.336] at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java
:272)
[17:47:28.336] at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java
:112)
[17:47:28.336] at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
[17:47:28.336] at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.jav
a:261)
[17:47:28.336] at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequest
Processor.java:237)
[17:47:28.336] at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestPr
ocessor.java:300)
[17:47:28.336] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
[17:47:28.336] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
[17:47:28.336] at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
[17:47:28.336] at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
[17:47:28.336] at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
[17:47:28.336] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:11
3)
[17:47:28.336] at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:211)
[17:47:28.336] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:177)
[17:47:28.336] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:221)
[17:47:28.336] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263)
[17:47:28.336] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:331)
[17:47:28.336] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:464)
[17:47:28.336] at com.caucho.util.ThreadPool.run(ThreadPool.java:408)
[17:47:28.336] at java.lang.Thread.run(Thread.java:534)
[17:47:28.336] Caused by: java.lang.NullPointerException
[17:47:28.336] at org.apache.struts.validator.Resources.getMessage(Resources.java:173)
[17:47:28.336] at org.apache.struts.taglib.html.JavascriptValidatorTag.createDynamicJavascript(Java
scriptValidatorTag.java:464)
[17:47:28.336] at org.apache.struts.taglib.html.JavascriptValidatorTag.renderJavascript(JavascriptV
alidatorTag.java:373)
[17:47:28.336] at org.apache.struts.taglib.html.JavascriptValidatorTag.doStartTag(JavascriptValidat
orTag.java:335)
[17:47:28.336] at _jsp._phonerecord._uploadrecords__jsp._jspService(_uploadrecords__jsp.java:97)
[17:47:28.336] ... 41 more
...全文
221 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sam79 2005-03-18
  • 打赏
  • 举报
回复
可能是jar版本的问题,重新换一下看看。
sui102 2004-11-30
  • 打赏
  • 举报
回复
我用的是ForwardAction,应该不需要指定映射的Form吧?
albert2000 2004-11-26
  • 打赏
  • 举报
回复
<html:javascript formName="uploadRecordsForm" dynamicScript="true" staticScript="false"/>
sui102 2004-11-26
  • 打赏
  • 举报
回复
我的Jsp页面:
<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html>
<html:messages id="msg" message="true" bundle="phoneRecord">
<bean:write name="msg"/><br/>
</html:messages>

<html:errors bundle="phoneRecord"/>
<html:javascript formName="uploadRecordsForm"/>
<html:form method="post" action="uploadRecords.do"
enctype="multipart/form-data" onsubmit="return validateUploadRecordsForm(this);">
<bean:message key="label.phoneRecord.upload.select" bundle="phoneRecord"/>
<html:file property="file"/> <html:submit/>

</html:form>

</html:html>

validation.xml文件片段:
<form name="uploadRecordsForm">
<field property="file" depends="required">
<msg name="required" key="label.phoneRecord.upload.noFile"/>
</field>
</form>

struts-config.xml文件片段:
<form-bean
name="uploadRecordsForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property
name="file"
type="org.apache.struts.upload.FormFile"/>
</form-bean>

在只采用服务器端校验的时候一切正常,在使用客户端校验的时候,整个页面不能显示。
albert2000 2004-11-26
  • 打赏
  • 举报
回复
<action path="/showUploadRecordsForm"
type=""
name="uploadRecordsForm"
scope="request"
input="/showUploadRecordsForm"
validate="true">
<forward name="success" contextRelative="true" path=""/>
</action>
你在action中指定你要映射的form
sui102 2004-11-26
  • 打赏
  • 举报
回复
当然有,我用的是ForwardAction
配置如下:
<action path="/showUploadRecordsForm"
type="org.apache.struts.actions.ForwardAction"
parameter="uploadRecordsPage"
validate="false"/>

就是在生成页面的时候出的问题。也就是说,还没等到提交表单,在显示表单的时候出错的。
albert2000 2004-11-26
  • 打赏
  • 举报
回复
楼主,你跟踪进去看看有没有运行到action里面?
albert2000 2004-11-26
  • 打赏
  • 举报
回复
说错了!!!不对!
albert2000 2004-11-26
  • 打赏
  • 举报
回复
你有没有在struts-config.xml中,
在action中,把validate="true"该为validate="false"
你原来是用服务器端验证的,validate是应该等于ture,现在你是用客户断验证的,改为false
sui102 2004-11-26
  • 打赏
  • 举报
回复
我机器上运行struts自带的例子,一点问题都没有。
我把自己的Jsp拷贝到struts自带的例子应用里面去,添加相应的配置以后,访问的时候,报一样的错。
真是郁闷!!
sui102 2004-11-26
  • 打赏
  • 举报
回复
<html:javascript formName="uploadRecordsForm" dynamicScript="true" staticScript="false"/>

这种方法没有用,一样是报错。
classjava 2004-11-26
  • 打赏
  • 举报
回复
关注
guojiafuzhuxi 2004-11-26
  • 打赏
  • 举报
回复
UP

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧