004杰信-关于formSubmit(\'factorycreate.action\',\'_self\')路径的疑惑
本文材料来源于传智播客,在此说明。
整个项目结构:
问题:
JFactoryList.jsp代码如下:
<ul> <hr> <font color="blue"><b>按钮区域</b></font> <hr> <li id="view"><a href="#" onclick="formSubmit(\'toview.action\',\'_self\');this.blur();">查看</a></li> <li id="new"><a href="#" onclick="formSubmit(\'factorycreate.action\',\'_self\');this.blur();">新增</a></li> <li id="update"><a href="#" onclick="formSubmit(\'jfactoryupdate.action\',\'_self\');this.blur();">修改</a></li> <li id="delete"><a href="#" onclick="formSubmit(\'deleteById.action\',\'_self\');this.blur();">删除</a></li> <li id="delete"><a href="#" onclick="formSubmit(\'delete.action\',\'_self\');this.blur();">批量删除</a></li> </ul>
上面的代码onclick="formSubmit(\'factorycreate.action\',\'_self\');
但是真正提交的是:
那么basicinfo/factory/这些是怎么来的呢?在comm.js中找到formSubmit的函数原型:
function formSubmit (url,sTarget){
document.forms[0].target = sTarget
document.forms[0].action = url;
document.forms[0].submit();
return true;
}
发现没什么异常啊。
那就很奇怪啊。
猜想是这样的:我们操作的JFactoryList.jsp就位于/basicinfo/factory目录下,所以我们在提交的factorycreate.action提交时,
就会自动补充到/basicinfo/factory/factorycreate.action这个请求。浏览器做的事情。
在Tomcat的目录结构是这样的:
在pages下:
而pages与classes是同级的,这个级别是不算路径的,所以直接就是
127.0.0.1:8000/JkTest/basinfo/factory/JFactoryCreate.jsp.
而我们点击确定时就来到了
127.0.0.1:8000/JkTest/basinfo/factory/factorycreate.action.