概述
-
三种方法
1.配置多个action
2.使用感叹号“❗”(只需配置一个action)
3.使用通配符
前期准备
- 定义两个action类
package cn.com.tjise.dynamic;
public class Demo1Action {
public String add() {
System.out.println("增加标记");
return "success";
}
public String del() {
System.out.println("删除标记");
return "success";
}
}
package cn.com.tjise.dynamic;
public class Demo2Action {
public String add() {
System.out.println("2增加标记");
return "success";
}
public String del() {
System.out.println("2删除标记");
return "success";
}
}
- 配置struts.xml文件
<?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>
<!-- 此处通过include包含了另一个xml文件(struts-dynamic.xml)他俩在同一级目录中-->
<include file="struts-dynamic.xml"></include>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="hello" namespace="/abc" extends="struts-default">
<action name="HelloAction" class="cn.com.tjise.action.HelloAction" method="execute">
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
<package name="dynamic2" namespace="/dynamic2" extends="struts-default" strict-method-invocation="false">
<action name="Demo2Action_*" class="cn.com.tjise.dynamic.Demo2Action" method="{1}">
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
</struts>
<?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.enable.DynamicMethodInvocation" value="true"></constant>
<package name="dynamic" namespace="/dynamic" extends="struts-default" strict-method-invocation="false">
<action name="Demo1Action" class="cn.com.tjise.dynamic.Demo1Action" method="add">
<result name="success" type="dispatcher">/index.jsp</result>
</action>
<action name="Demo1Action" class="cn.com.tjise.dynamic.Demo1Action" method="del">
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
</struts>
此处特别注意:
百度里搜索说在struts2的2.5以后的版本进行动态调用需要在struts.xml文件中加上两句话,但是我在电脑试验版本2.35也需要加上两句话才可以实现动态调用
所以都加上为妙,如下:(在以上的代码中已经加入)
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
在package中加上:
strict-method-invocation="false"
- 配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>struts201</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
- 简单写一个index.jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<h2>123</h2>
</body>
</html>
测试
- 第一种方法测试(配置多个action)
- 第二种方法(带“!”的)
- 第三种方法(通配符)
结束…
最后
以上就是自由火为你收集整理的初识(struts2中)action动态调用的三种方法的全部内容,希望文章能够帮你解决初识(struts2中)action动态调用的三种方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复