JSP页面提交问题(急,在线等)

szbszb 2015-05-05 11:28:16
我有个项目使用的SSH框架,其中有个页面里使用了JS进行动态行添加,当只添加一行或不添加行时页面可以正常提交数据正常可以保存,但是如果动态添加两法,页面提交就出错,后台提示
ttp-80-Processor24[slf5s.THREAD]
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].[jsp][slf5s.CATEGORY]
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:253)[slf5s.LOCATION]
Servlet.service() for servlet jsp threw exception[slf5s.MESSAGE]

javax.servlet.jsp.JspException: Cannot retrieve mapping for action /AidApplication
at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:810)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
at org.apache.jsp.jzsp.aid_005fapplication_005fcsds_005fedit_jsp._jspService(aid_005fapplication_005fcsds_005fedit_jsp.java:208)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.kingtake.common.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
...全文
175 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2015-05-05
  • 打赏
  • 举报
回复
struts1? 看看你的 jsp 页面怎么提交的?然后你的 struts 配置?
szbszb 2015-05-05
  • 打赏
  • 举报
回复
对了,忘了说,在服务器上本地访问是正常的,客户端会出这个问题.
szbszb 2015-05-05
  • 打赏
  • 举报
回复
引用 6 楼 a913858 的回复:
没有什么有用的信息很难帮到你什么,不能光按照错误信息来看。你可以调试下js脚步看看有错没
JS都调试过没有出错,包括页面验证等都是正常的,郁闷的是动态增加一行数据正常,多行数据就出错.
szbszb 2015-05-05
  • 打赏
  • 举报
回复
function findObj(theObj, theDoc)
 { 
 var p, i, foundObj; 
 if(!theDoc) theDoc = document; 
 if( (p = theObj.indexOf("?")) > 0 && parent.frames.length) 
 {    theDoc = parent.frames[theObj.substring(p+1)].document;    theObj = theObj.substring(0,p); } if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj]; for (i=0; !foundObj && i < theDoc.forms.length; i++)     foundObj = theDoc.forms[i][theObj]; for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++)     foundObj = findObj(theObj,theDoc.layers[i].document); if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);    return foundObj;
 }
 //添加一个参与人填写行
 function AddSignRow(){ //读取最后一行的行号,存放在txtTRLastIndex文本框中 
 //var txtTRLastIndex = findObj(rownum,document);
 var rowID = rownum;
 
var signFrame = findObj("jtcy",document);
 //添加行
 var newTR = signFrame.insertRow(signFrame.rows.length);
 newTR.id = "SignItem" + rowID;
 
//添加列:姓名
 var newNameTD=newTR.insertCell(0);
 //添加列内容
 newNameTD.style.background="#FFFFFF";
 newNameTD.style.textAlign="center";
 newNameTD.innerHTML = "<input size='15' type='text'  maxlength='15' name='xm'"+rownum+" id='xm"+rownum+"'/>";
 
//添加列:年龄
 var newEmailTD=newTR.insertCell(1);
 //添加列内容
  newEmailTD.style.background="#FFFFFF";
  newEmailTD.style.textAlign="center";
 newEmailTD.innerHTML = "<input size='6' type='text' name='nl'"+rownum+" maxlength='3' id='nl"+rownum+"'/>";
 
//添加列:关系
 var newTelTD=newTR.insertCell(2);
 //添加列内容
  newTelTD.style.background="#FFFFFF";
  newTelTD.style.textAlign="center";
 newTelTD.innerHTML = "<input size='10'  maxlength='10' type='text' name='gx'"+rownum+" id='gx"+rownum+"'/>";
 
 //添加列:年收入
 var newTelTD=newTR.insertCell(3);
 //添加列内容
  newTelTD.style.background="#FFFFFF";
  newTelTD.style.textAlign="center";
 newTelTD.innerHTML = "<input size='10'  maxlength='10' type='text' name='nsr'"+rownum+" id='nsr"+rownum+"'/>";
 
//添加列:身份证
 var newMobileTD=newTR.insertCell(4);
 //添加列内容
  newMobileTD.style.background="#FFFFFF";
  newMobileTD.style.textAlign="center";
 newMobileTD.innerHTML = "<input size='26' type='text' maxlength='18' name='sfz'"+rownum+" id='sfz"+rownum+"'/>";
 
//添加列:工作单位
 var newCompanyTD=newTR.insertCell(5);
 //添加列内容
  newCompanyTD.style.background="#FFFFFF";
  newCompanyTD.style.textAlign="center";
 newCompanyTD.innerHTML = "<input size='60' type='text' name='gzdw'"+rownum+" id='gzdw"+rownum+"'/>";
 

//添加列:删除按钮
 var newDeleteTD=newTR.insertCell(6);
 //添加列内容
  newDeleteTD.style.background="#FFFFFF";
  newDeleteTD.style.textAlign="center";
 newDeleteTD.innerHTML = "<div align='center' style='width:40px'><a href='javascript:;' onclick=\"DeleteSignRow('SignItem" + rowID + "')\">删除</a></div>";
 rownum++
 }
 //删除指定行
 function DeleteSignRow(rowid){
 var signFrame = findObj("jtcy",document);
 var signItem = findObj(rowid,document);
 
//获取将要删除的行的Index
 var rowIndex = signItem.rowIndex;
//删除指定Index的行
 signFrame.deleteRow(rowIndex);
 

 }//清空列表
 function ClearAllSign(){
 if(confirm('确定要清空所有参与人吗?')){
 var signFrame = findObj("SignFrame",document);
 var rowscount = signFrame.rows.length;
 
//循环删除行,从最后一行往前删除
 for(i=rowscount - 1;i > 0; i--){
    signFrame.deleteRow(i);
 }
 
//重置最后行号为1
 var txtTRLastIndex = findObj("txtTRLastIndex",document);
 txtTRLastIndex.value = "1";
 
//预添加一行
 AddSignRow();
 }
 }
 function save(flag){
 	if (validateForm(form)){
	 	form.action = "../jzsp/AidApplication.do?operate=save&operPage=aid_application_edit&aidApplication.isFinish="+flag;
		form.submit();
	}
 }
西部落酋长 2015-05-05
  • 打赏
  • 举报
回复
没有什么有用的信息很难帮到你什么,不能光按照错误信息来看。你可以调试下js脚步看看有错没
  • 打赏
  • 举报
回复
js代码,页面提交请求的路径,还有action代码贴出来,帮你看下
szbszb 2015-05-05
  • 打赏
  • 举报
回复
引用 3 楼 zhangxiaojie0321 的回复:
提交的全路径是否是正确的?
提交的路径是正确的,现在出现问题是页面主动态增加行后出的错,而且只加一行的时候不出错,添加两行以上会出错.前台直接显示Intenet Exploer无法显示该网页,后台提示 ttp-80-Processor24[slf5s.THREAD] org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].[jsp][slf5s.CATEGORY] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:253)[slf5s.LOCATION] Servlet.service() for servlet jsp threw exception[slf5s.MESSAGE] javax.servlet.jsp.JspException: Cannot retrieve mapping for action /AidApplication at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:810) at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506) at org.apache.jsp.jzsp.aid_005fapplication_005fcsds_005fedit_jsp._jspService(aid_005fapplication_005fcsds_005fedit_jsp.java:208)
ay转身遇 2015-05-05
  • 打赏
  • 举报
回复
提交的全路径是否是正确的?
szbszb 2015-05-05
  • 打赏
  • 举报
回复
引用 1 楼 defonds 的回复:
struts1? 看看你的 jsp 页面怎么提交的?然后你的 struts 配置?
配置没问题,没有动态增加行可以正常提交.提交方式是指定FORM的action然后submit

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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