前言
假设struts2现在拦截2种后缀的请求路径,
1、请求路径以.action结尾
2、请求路径以.jsp结尾
请求路径以.action结尾
1、.根路径/模块名字/action名字!方法名字.action
示例代码(根路径/actiom名字!方法名字.action?请求参数键值对)
//查看项目信息
function viewProjectInfo(id){
if(id){//查看,弹出页面方式,参数参见telewave.js
var url=ctxpath+"/projectInfoAction!view.action?projectinfo.projectid="+id+"&s="+Math.random();
url=encodeURI(url);//这里需要编码,防止中文参数变乱码
Telewave.Data.Show(url,Telewave.oModelConfig.Title.View,false,800,600);
}else{
Ext.Msg.alert('提示信息','该条数据未有唯一标识');
}
}
2、根路径/action名字!方法名字.action
<s:form action="taskInfoAction!save.action" id="myform" method="post"
cssClass='subForm'>
3、根路径/action名字!方法名字 //疑问:这里没有.action后缀,但是也没有问题,不知道是怎么回事?
示例代码
<s:form action="systemmenuAction!addData" id="addform" method="post"
enctype='multipart/form-data' cssClass="subForm">
附:配置文件
web.xml
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
action配置文件
<struts>
<package name="task" extends="default">
<action name="taskInfoAction"
class="com.telewave.projectmanagerweb.task.actions.TaskInfoAction">
<result name="edit">
/jsps/task/taskinfo/editTaskInfo.jsp
</result>
<result name="add">
/jsps/task/taskinfo/addTaskInfo.jsp
</result>
<result name="view">
/jsps/task/taskinfo/viewTaskInfo.jsp
</result>
<result name="main">
/jsps/task/taskinfo/taskInfoMain.jsp
</result>
<result name="main1">
/jsps/taskInfoMain.jsp
</result>
<result name="mainByProjectName">
/jsps/taskInfoMainByProjectName.jsp
</result>
<result name="viewWorkPlan">
/jsps/workplan/workplan/viewWorkPlan.jsp
</result>
<result name="toProjectTask">
/jsps/task/taskinfo/toProjectTask.jsp
</result>
<result name="allStatusRecord">
/jsps/task/taskinfo/viewAllStatusRecord.jsp
</result>
</action>
请求路径以.jsp结尾
1、请求路径
示例代码
<a href="#" οnclick="openTable(this)" id="GOVSupervise_T3_M90_S4_Y2" thisoption="2" thissrc="/SystemWeb/Jsps/System/Menu/systemmenumtMain.jsp"><img src="../images/govSysMenuVindicate.gif" width="80" height="65"><br>系统菜单维护</a>
2、配置文件
1)web.xml:同上
2)action配置文件:该请求路径没有配置action
3、总结
在struts2里,没有配置action的话,直接跳转到.jsp页面。
4、与springMVC区别
spingMVC,如果是.jsp,那么需要用专门的请求控制器配置一个映射才能跳转到.jsp页面;
如果没有任何配置的话,那么找不到资源页面。