Struts2的Action访问
● 示例项目结构

● demo1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head> <body>
<h1>Action的访问</h1>
<h3>通过method方法</h3>
<a href="${pageContext.request.contextPath}/userFind.action">查询用户</a>
<a href="${pageContext.request.contextPath}/userUpdate.action">修改用户</a>
<a href="${pageContext.request.contextPath}/userDelete.action">删除用户</a>
<a href="${pageContext.request.contextPath}/userSave.action">保存用户</a><br/> <h3>通过通配符的方法</h3>
<a href="${pageContext.request.contextPath}/product_find.action">查询商品</a>
<a href="${pageContext.request.contextPath}/product_update.action">修改商品</a>
<a href="${pageContext.request.contextPath}/product_delete.action">删除商品</a>
<a href="${pageContext.request.contextPath}/product_sava.action">保存商品</a><br/> <h3>通过动态方法访问</h3>
<a href="${pageContext.request.contextPath}/customer!find.action">查询客户</a>
<a href="${pageContext.request.contextPath}/customer!update.action">修改客户</a>
<a href="${pageContext.request.contextPath}/customer!delete.action">删除客户</a>
<a href="${pageContext.request.contextPath}/customer!sava.action">保存客户</a><br/>
</body>
</html>
dmeo1.jsp
● struts2.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 file="com/sve/Struts2/demo2/struts_demo2.xml"/>
</struts>
struts2.xml
● 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_3_1.xsd"
version="3.1">
<display-name>Struts2</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
web.xml
● struts2_demo2.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>
<!-- 允许动态方法 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="default" namespace="/" extends="struts-default">
<!-- 通过method方法 -->
<action name="userFind" class="com.sve.Struts2.demo2.UserAction" method="find"></action>
<action name="userUpdate" class="com.sve.Struts2.demo2.UserAction" method="update"></action>
<action name="userDelete" class="com.sve.Struts2.demo2.UserAction" method="delete"></action>
<action name="userSave" class="com.sve.Struts2.demo2.UserAction" method="save"></action> <!-- 通配符的方法 -->
<action name="*_*" class="com.sve.Struts2.demo2.ProductAction" method="{2}"></action> <!-- 动态方法访问 -->
<action name="customer" class="com.sve.Struts2.demo2.CustomerAction"></action>
</package>
</struts>
struts2_demo2.xml
● UserAction.java
package com.sve.Struts2.demo2;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport{
public String find() {
System.out.println("查询用户。。。");
return NONE;
}
public String update() {
System.out.println("修改用户。。。");
return NONE;
}
public String delete() {
System.out.println("删除用户。。。");
return NONE;
}
public String save() {
System.out.println("保存用户。。。");
return NONE;
}
}
UserAction.java
● CustomerAction.java
package com.sve.Struts2.demo2;
import com.opensymphony.xwork2.ActionSupport;
public class CustomerAction extends ActionSupport {
public String find() {
System.out.println("查询客户。。。");
return NONE;
}
public String update() {
System.out.println("修改客户。。。");
return NONE;
}
public String delete() {
System.out.println("删除客户。。。");
return NONE;
}
public String sava() {
System.out.println("保存客户。。。");
return NONE;
}
}
CUstomerAction.java
● ProductAction.java
package com.sve.Struts2.demo2;
import com.opensymphony.xwork2.ActionSupport;
public class ProductAction extends ActionSupport {
public String find() {
System.out.println("查询商品。。。");
return NONE;
}
public String update() {
System.out.println("修改商品。。。");
return NONE;
}
public String delete() {
System.out.println("删除商品。。。");
return NONE;
}
public String sava() {
System.out.println("保存商品。。。");
return NONE;
}
}
ProductAction.java
1.method方法
<action name="userFind" class="com.sve.Struts2.demo2.UserAction" method="find"></action>
在struts2_demo2.xml中,通过设置action中的method的值,值为class对应的方法名
2.通配符的方法(常用的)
<action name="*_*" class="com.sve.Struts2.demo2.ProductAction" method="{2}"></action>
与method方法略微不同,method的值设置为name值对应星编号,以上也可设置为
<action name="product_*" class="com.sve.Struts2.demo2.ProductAction" method="{1}"></action>
3.动态方法
使用动态方法前必须先设置constant,允许动态方法的使用
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
无须设置method,动态方法是修改访问链接,如示例中的
<action name="customer" class="com.sve.Struts2.demo2.CustomerAction"></action>
<a href="${pageContext.request.contextPath}/customer!find.action">查询客户</a>
customer为action中设置的name值,然后加入“!”,后加上想使用的方法名
Struts2的Action访问的更多相关文章
- struts2的action访问servlet API的三种方法
学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...
- struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式
方法一:通过ActionContext访问SerlvetAPI,这种方式没有侵入性 Action类部分代码 import com.opensymphony.xwork2.ActionContext; ...
- Struts2笔记--Action访问Servlet API
Web应用中通常需要访问的Servlet API就是HttpServletRequest.HttpSession和ServletContext,这三个接口分别代表JSP内置对象中的request.se ...
- struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...
- 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...
- struts2中的action访问web对象
Struts2的Action就是一个普通的POJO对象,它和Web对象request.response.session和application没有耦合在一起,这样便于单独测试Action,那么我们在A ...
- 4.Struts2中Action的三种访问方式
1.传统的访问方式-很少使用 通过<action>标签中的method属性,访问到action中的具体方法 具体实现: 1.action代码 import com.opensymphony ...
- 访问struts2的action页面出现白板问题
访问struts2的action页面出现白板问题 故需要设置拦截此action的拦截栈, <bean id="authenticationInterceptor" class ...
- struts2的action是多例,servlet是单例
struts2中action是多例的,即一个session产生一个action如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为用户修改时间不同,两个用户访问得到的 属性不一样,操作得出的 ...
随机推荐
- 树的直径(BFS)
][];];];];,,;vis[i]=; ; j <= n ; j++){ ){;//标记 res[j]=res[root]+; ; i <= n- ; i++){; data[b][a ...
- 偏向锁,偏向线程id ,自旋锁
理解锁的基础知识 如果想要透彻的理解Java锁的来龙去脉,需要先了解以下基础知识. 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发 ...
- go 复合数据类型
数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.因为数组的长度是固定的,因此在Go语言中很少直接使用数组. 数组声明方式: #第一种 ] int balance ...
- 56.Decode String(解码字符串)
Level: Medium 题目描述: Given an encoded string, return it's decoded string. The encoding rule is: k[e ...
- 35.Unique Paths(不同的路径)
Level: Medium 题目描述: A robot is located at the top-left corner of a m x n grid (marked 'Start' in ...
- face_recognition人脸识别框架
一.环境搭建 1.系统环境 Ubuntu 17.04 Python 2.7.14 pycharm 开发工具 2.开发环境,安装各种系统包 人脸检测基于dlib,dlib依赖Boost和cmake $ ...
- CentOS 7.3 环境配置java和tomcat开机启动
Centos7下添加开机自启动服务和脚本 https://blog.csdn.net/GMingZhou/article/details/78677953 安装部分参考我的博文,仅参考他的开机启动部 ...
- go语言从例子开始之Example13.函数多返回值
Go 内建多返回值 支持.这个特性在 Go 语言中经常被用到,例如用来同时返回一个函数的结果和错误信息. Example: package main import "fmt" // ...
- Educational Codeforces Round 69 E - Culture Code (最短路计数+线段树优化建图)
题意:有n个空心物品,每个物品有外部体积outi和内部体积ini,如果ini>outj,那么j就可以套在i里面.现在我们要选出n个物品的一个子集,这个子集内的k个物品全部套在一起,且剩下的物品都 ...
- Django Rest框架 APIView源码调用
上一篇说了请求访问的流程,这一篇说一下请求对应的源码调用 as_view 定义view dispatch dispatch initialize_request get_parsers ...