JavaWeb_(Struts2框架)Struts创建Action的三种方式
此系列博文基于同一个项目已上传至github 传送门
JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门
JavaWeb_(Struts2框架)struts.xml核心配置、动态方法调用、结果集的处理 传送门
JavaWeb_(Struts2框架)Log4j的配置以及解决中文乱码 传送门
JavaWeb_(Struts2框架)参数传递之接收参数与传递参数 传送门
JavaWeb_(Struts2框架)Ognl小案例查询帖子 传送门
JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型 传送门
JavaWeb_(Struts2框架)拦截器interceptor 传送门
第一种DefaultAction什么都没有干
第二种实现了Action接口
第三种继承了ActionSupport类【常用】
目录结构

package com.Gary.web;
public class DefaultAction {
public String execute()
{
System.err.println("这是一个普通的action");
return null;
}
}
DefaultAction.java
package com.Gary.web;
import com.opensymphony.xwork2.Action;
class ImplAction implements Action{
@Override
public String execute() throws Exception {
System.out.println("这是实现了Action接口的action");
return null;
}
}
ImplAction.java
package com.Gary.web; import org.apache.struts2.ServletActionContext; import com.Gary.domain.User;
import com.Gary.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven; public class UserAction extends ActionSupport implements ModelDriven<User>{ public User user = new User(); public String execute() throws Exception { System.err.println("我已经运行了"); UserService userService = new UserService();
boolean success = userService.findUser(user);
if(success)
{
return "success";
}else{
ServletActionContext.getRequest().setAttribute("error", "用户名或密码错误!!!");
return "error";
} } @Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}
UserAction.java
配置struts.xml
<struts>
<!-- name:配置包名 -->
<package name="MyPackage" namespace="/" extends="struts-default">
<action name="LoginAction" class="com.Gary.web.UserAction" method="execute">
<!-- 默认为转发 redirect设置为重定向-->
<result name="success" type="redirect">/index.html</result>
<result name="error">/login.jsp</result>
</action> <action name="LoginActionDefault" class="com.Gary.web.DefaultAction" method="execute">
</action> <action name="LoginActionImpl" class="com.Gary.web.ImplAction" method="execute"></action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd"> <struts>
<!-- name:配置包名 -->
<package name="MyPackage" namespace="/" extends="struts-default">
<action name="LoginAction" class="com.Gary.web.UserAction" method="execute">
<!-- 默认为转发 redirect设置为重定向-->
<result name="success" type="redirect">/index.html</result>
<result name="error">/login.jsp</result>
</action> <action name="LoginActionDefault" class="com.Gary.web.DefaultAction" method="execute">
</action> <action name="LoginActionImpl" class="com.Gary.web.ImplAction" method="execute"></action>
</package>
</struts>
struts.xml
JavaWeb_(Struts2框架)Struts创建Action的三种方式的更多相关文章
- Struts2(二)action的三种方式
一.普通java类 package com.pb.web.action; /* * 创建普通的java类 */ public class HelloAction1 { public String ex ...
- JavaWeb_(Struts2框架)struts.xml核心配置、动态方法调用、结果集的处理
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- 0036 Java学习笔记-多线程-创建线程的三种方式
创建线程 创建线程的三种方式: 继承java.lang.Thread 实现java.lang.Runnable接口 实现java.util.concurrent.Callable接口 所有的线程对象都 ...
- js学习-DOM之动态创建元素的三种方式、插入元素、onkeydown与onkeyup两个事件整理
动态创建元素的三种方式: 第一种: Document.write(); <body> <input type="button" id="btn" ...
- spring创建bean的三种方式
spring创建bean的三种方式: 1通过构造方法创建bean(最常用) 1.1 spring默认会通过无参构造方法来创建bean,如果xml文件是这样配置,则实体类中必须要有无参构造方法,无参构造 ...
- Java并发编程:Java创建线程的三种方式
目录 引言 创建线程的三种方式 一.继承Thread类 二.实现Runnable接口 三.使用Callable和Future创建线程 三种方式的对比 引言 在日常开发工作中,多线程开发可以说是必备技能 ...
- 实现Action的三种方式
实现Action的三种方式: 1.普通类 一般采用此种方法 2.实现Action接口 3.继承ActionSupport类
- java创建线程的三种方式及其对比
第一种方法:继承Thread类,重写run()方法,run()方法代表线程要执行的任务.第二种方法:实现Runnable接口,重写run()方法,run()方法代表线程要执行的任务.第三种方法:实现c ...
- AJPFX总结java创建线程的三种方式及其对比
Java中创建线程主要有三种方式: 一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行 ...
随机推荐
- Python(六) —— 网络请求
接口调用 接口调用有几个模块可以用:urllib 和 requests ,urllib 是内置的模块,极其不好用,强烈推荐用 requests 模块 get 请求 1.普通的 get 请求 impor ...
- 【原创】大叔经验分享(71)docker容器中使用jvm工具
java应用中经常需要用到jvm工具来进行一些操作,如果java应用部署在docker容器中,如何使用jvm工具? 首先要看使用的docker镜像, 比如常用的openjdk镜像分为jdk和jre,只 ...
- BZOJ5017题解SNOI2017炸弹--玄学递推
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5017 分析 老师讲课谈到了这道题,课上想出了个连边建图然后乱搞的操作,被老师钦定的递推方 ...
- O058、Snapshot Volume 操作
参考https://www.cnblogs.com/CloudMan6/p/5657744.html Snapshot 可以为 volume 创建快照,快照中保存了 volume当前的状态,以后可 ...
- Centos7:nginx的安装,配置及使用
安装依赖 yum install gcc-c++//gcc环境 yum install -y pcre pcre-devel//PCRE:nginx的http模块使用pcre来解析正则表达式 yum ...
- vue中的常用三元
点击事件的三元 <el-button type="primary" @click="edit == 'mod' ? sureModify() : submit()& ...
- angular实现对百度天气api跨域请求
申请秘钥:http://lbsyun.baidu.com/apiconsole/key ,有个百度账号就行ak=开发者秘钥 url地址 :http://api.map.baidu.com/tele ...
- Java并发与多线程
1. 并发与并行 并发是指某个时间段内,多任务交替处理的能力:并行是指同时处理多任务的能力,多核CPU可以实现并行任务. 并发执行的特点: (1)并发程序间相互制约:程序执行结果的相互依赖以及共享资源 ...
- fragment事务 的基本处理
处理fragment事务 动态加载fragmentMyFragment2 fragment2=new MyFragment2();//new出一个fragment对象FragmentManager f ...
- Jmeter (二) 参数化
一.数据 用户 参数化 1.添加 用户参数 添加——>前置处理器 ——>用户参数 2.设置 目标参数 3.变量代替 ${name} 4.线程组 设置循环次数,查看结果数中查看结果 thre ...