S4.2_Struts2_ActionAdvance 在url地址中动态调用action方法
2016-12-12 17:55
821 查看
我们接下来将要创建的项目目录结构如下:
由项目S4.1_Struts2_ActionAdvance(如何下载它:点击打开链接)复制粘贴生成一个新项目 ------ S4.2_Struts2_ActionAdvance
DMI(Dynamic Method Invocation):action的动态方法调用
第1步:在WebRoot/admin/admin.jsp页面文件中,设置动态调用action方法的url地址,注意红色字体标识的URL地址写法 ------ DMI 的url写法:
<%@ page language="java" import="java.util.*" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>管理员界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<center>
<h1>管理员界面</h1>
<hr>
<li><a href="<%=path%>/admin/admin!add.action?method=添加">添加</a></li>
<li><a href="<%=path%>/admin/admin!delete.action?method=删除">删除</a></li>
<li><a href="<%=path%>/admin/admin!modify.action?method=修改">修改</a></li>
<s:debug></s:debug>
</center>
</body>
</html>
第2步:在src/struts.xml配置文件中,找到admin子包中插入红色字体标识的DMI的action配置写法:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" ></constant>
<constant name="struts.i18n.encoding" value="utf-8" ></constant>
<!-- 父包default -->
<package name="default" namespace="" extends="struts-default">
<global-results>
<result name="login_success">/login_success.jsp</result>
<result name="login_failure">/login_failure.jsp</result>
</global-results>
<action name="exit">
<result>/login.jsp</result>
</action>
</package>
<!-- 子包user继承于父包default -->
<package name="user" namespace="/user" extends="default">
<action name="login" class="net.nw.action.LoginAction3">
</action>
</package>
<!-- 子包admin继承于父包default -->
<package name="admin" namespace="/admin" extends="default">
<global-results>
<result>/admin/result.jsp</result>
</global-results>
<action name="login" class="net.nw.action.AdminAction">
<result>/admin/admin.jsp</result>
</action>
<action name="admin" class="net.nw.action.AdminAction">
</action>
</package>
</struts>
为了加深印象,发一张代码修改前后对比截图:
第3步:发布运行程序,看一下效果图:
本项目的下载地址:点击打开链接
由项目S4.1_Struts2_ActionAdvance(如何下载它:点击打开链接)复制粘贴生成一个新项目 ------ S4.2_Struts2_ActionAdvance
DMI(Dynamic Method Invocation):action的动态方法调用
第1步:在WebRoot/admin/admin.jsp页面文件中,设置动态调用action方法的url地址,注意红色字体标识的URL地址写法 ------ DMI 的url写法:
<%@ page language="java" import="java.util.*" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>管理员界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<center>
<h1>管理员界面</h1>
<hr>
<li><a href="<%=path%>/admin/admin!add.action?method=添加">添加</a></li>
<li><a href="<%=path%>/admin/admin!delete.action?method=删除">删除</a></li>
<li><a href="<%=path%>/admin/admin!modify.action?method=修改">修改</a></li>
<s:debug></s:debug>
</center>
</body>
</html>
第2步:在src/struts.xml配置文件中,找到admin子包中插入红色字体标识的DMI的action配置写法:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" ></constant>
<constant name="struts.i18n.encoding" value="utf-8" ></constant>
<!-- 父包default -->
<package name="default" namespace="" extends="struts-default">
<global-results>
<result name="login_success">/login_success.jsp</result>
<result name="login_failure">/login_failure.jsp</result>
</global-results>
<action name="exit">
<result>/login.jsp</result>
</action>
</package>
<!-- 子包user继承于父包default -->
<package name="user" namespace="/user" extends="default">
<action name="login" class="net.nw.action.LoginAction3">
</action>
</package>
<!-- 子包admin继承于父包default -->
<package name="admin" namespace="/admin" extends="default">
<global-results>
<result>/admin/result.jsp</result>
</global-results>
<action name="login" class="net.nw.action.AdminAction">
<result>/admin/admin.jsp</result>
</action>
<action name="admin" class="net.nw.action.AdminAction">
</action>
</package>
</struts>
为了加深印象,发一张代码修改前后对比截图:
第3步:发布运行程序,看一下效果图:
本项目的下载地址:点击打开链接
相关文章推荐
- Struts2基础之四:动态方法调用(DMI)和action通配符
- Struts2-action动态调用与通配调用方法
- 每当使用struts2动态方法调用时,总是出现错误:There is no Action mapped for namespace [/user] and action name [user!add]
- Struts2-02Action动态方法调用
- struts2教程:10、动态方法调用和使用通配符定义action
- Struts2 url中包含感叹号实现动态方法调用
- struts2_7_Action类中方法的动态调用
- Struts2 url中包含感叹号实现动态方法调用
- 【Struts2学习笔记(6)】Action动态方法调用
- struts2学习 - action -3 动态方法调用 DMI
- 复习Struts2之Action动态方法调用
- struts2动态方法调用 ActionName!methodName.action
- Struts2中DMI(动态方法调用)的错误问题(There is no Action mapped for namespace [/xxx] and action name [xxx!yyy] a)
- struts2动态方法调用和使用通配符定义action
- struts2中多个逻辑action(方法)的动态调用
- struts2动态方法调用 ActionName!methodName.action
- struts2配置及ActionMethod_DMI_动态方法调用
- struts2 Action专题之二:动态方法的调用
- Struts2自定义Action,自定义方法,DMI(动态方法调用),路径问题
- Struts2 ActionMethod DMI(动态方法调用)