简要描述Struts2中的Action的访问方式及跳转,在struct.xml中进行配置,用返回值来决定要跳转的界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 传统方式-->
<a href="${pageContext.request.contextPath}/saveCustormer.action">保存客户</a>
<a href="${pageContext.request.contextPath}/deleteCustormer.action">删除客户</a>
<!--通配符方式 常用-->
<a href="${pageContext.request.contextPath}/linkman_save.action">保存联系人</a>
<a href="${pageContext.request.contextPath}/linkman_delete.action">删除联系人</a>
<!-- 动态方法访问形式,注意变化user!save,就是说是名叫user中的save方法 -->
<a href="${pageContext.request.contextPath}/user!save.action">保存用户</a>
<a href="${pageContext.request.contextPath}/user!delete.action">删除用户</a>
</body>
</html>

 这个参考一下jsp界面内容的变化,其中要注意的是通配符的方式,先加载linkManAction类中的所有方法,然后根据通配符来判断要使用哪一种方法。比如取的名字为linkman_*,就是加载linkManAction的所有类给它们一个前缀叫linkman,然后请求的linkman_save就是执行linkManAction类中的save的方法。这个前缀是我个人方便理解说的,不一定对,望各位博友指正。嘿嘿。里面要访问的类在这里就不呈现了,大家可以用简单的System.out.println("这个是传统方式的跳转");来检验一下,因为本人最近在学框架,所以在这里做个笔记。

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<!--要想使用动态方式的访问,就要配置上面的这段内容,value="true"-->
<package name="demo2" namespace="/" extends="struts-default">
 <!-- 传统的方式 -->
<action name="saveCustormer" class="com.edu.action.CustomerAction" method="save"/>
<action name="deleteCustormer" class="com.edu.action.CustomerAction" method="delete"/>
<!-- 通配符的方式 -->
<action name="linkman_*" class="com.edu.action.linkManAction" method="{1}"> 
<!-- 1表示第一个* -->
<result name="saveok" >/demo1/success.jsp</result>
<!--返回的结果值,来决定跳转的方向-->
<result name="deleteok">/demo1/success.jsp</result>
</action>
<!--动态方式的访问-->
<action name="user" class="com.edu.action.Useraction">
</package>