struts2基础——最简单的一个例子
学习版本:struts-2.3.15.3
一、导入jar包,可以参考 官方项目 blank。
二、添加配置文件:web.xml struts.xml
web.xml:
<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.xml
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>
<package name="default" namespace="/" extends="struts-default">
<action name="helloworld" class="com.nucsoft.struts2.helloworld.HelloWorld" method="firstMethod">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
struts.xml
三、创建 Action 类
public class HelloWorld {
private static final String SUCCESS = "success";
public String firstMethod() {
System.out.println("com.nucsoft.struts2.helloworld.HelloWorld.firstMethod");
return SUCCESS;
}
}
HelloWorldAction
四、详解
web.xml:
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter为 struts2 的核心处理器,相当于 SpringMVC 的dispatchServlet
struts.xml
根标签:struts
package 标签定义一个功能模块,
name 属性:标识 package,便于引用,extends 属性:需要继承一个父 package,如 struts-default。
namespace 属性:包的命名空间。默认为 /,abstract 属性:定义包为抽象的,不能包含 Action 的定义。
action 标签:
一个 Struts2 请求就是一个 action,
name 属性:定义了一个 Struts2 请求的名字,不包含扩展名,相当于 servlet-path 去掉 / 和 .action
class 属性:定义请求处理类,默认为 ActionSupport,在 struts-default.xml 中配置了
method 属性:每一个 Action 类都可以应答多个 Struts2 请求,每一个请求都由具体的方法处理,方法名由 method 指定。默认为 execute()。
result 标签:
代表 Struts2 处理用户请求后返回的"结果",也就是响应。
name 属性:值和 action 的 method 属性指定的方法的字符串返回值对象,默认为 success。
Action类:
1.不需要实现任何接口或继承任何类。
2.在 Action 类中可以使用 setXxx() 方法接受 Struts2 请求中提交的请求参数(不论是 get 请求还是 post请求)
3.Action 类中的 getXxx() 方法可以用来在页面上显示数据
4.处理请求方法有固定格式:必须为 public,返回值必须是 String 类型,没有参数
struts2的两个默认文件:
struts-default.xml
default.properties
struts2基础——最简单的一个例子的更多相关文章
- 菜鸟学习Hibernate——简单的一个例子
一.Hibernate开发. 上篇博客已经为大家介绍了持久层框架的发展流程,持久层框架的种类. 为了能够使用Hibernate快速上手,我们先讲解一个简单的Hibernate应用实例hibernate ...
- appium基础之简单的小例子
appium环境搭建了,当然也要开始用起来了,记录一下学习的过程 遇到问题 1.The permission to start '.ui.home.view.HomeActivity' activit ...
- Matlab数值计算最简单的一个例子——指数衰减
放射性衰变是指数衰减的典型例子.另外还有化学反应某反应物的减少,RC电路电流的减小,大气压随海拔高度的减小等. 指数衰减的方程: \begin{equation} \frac{dN(t)}{dt}=- ...
- SSH整合最简单的一个例子
1.新建mysql数据库 create database spring; 切换数据库 use spring; 新建表 create table user (id int(3) auto_incre ...
- QT 自定义消息(超级简单的一个例子)
#define TEST_EVENT QEvent::User + 100 class CVxActuatorMain : public QMainWindow { protected: ...
- 写了个 Task.WhenAll(t)的一个例子。
public static void Main() { var t = Task.Run(() => { throw new Exception("aa"); }); Tas ...
- 一个简单的springmvc例子 入门(1)
一直是从事棋牌游戏,平常用的东西 大多数只是使用一些javase的一些 api对spring 这方面 用到的比较少,每次学了都忘,始终记不住.为了 更轻松学习springboot,从新学习了sprin ...
- 一个简单的CORBA例子
因为对CORBA分析的需要,这里写一个简单的CORBA例子.从JDK1.2开始,JDK中集成了ORB的实现,本例子使用了JDK1.7,对于JDK1.2+应该都没有问题.这个例子实现一个简单的加减乘除的 ...
- 对Jena的简单理解和一个例子
本文简单介绍Jena(Jena 2.4),使用Protégé 3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Cla ...
随机推荐
- arcgis手动启动服务提示端口4000被使用
具体解决办法 参考 http://hi.baidu.com/xjx19860908/item/6b46376d92044694c4d249f6该博文. 手动启动,提示4000端口被占用,去查找4000 ...
- H608B无线路由破解方法
家里的无线路由送人了,准备重新买,今日一看,竟然自带的猫(ZTE H608B)有wifi天线和4个LAN口,想着是支持路由功能的,那必然就是从软件上做了手脚.搜索该型号发现没人刷openwrt或者to ...
- paypal之nodejs 框架 Kraken-js 源码分析
本文是基于 kraken-js 0.6.1 版本的 关于如何使用kraken-js 可以去看看官网的使用文档 点击这里 .kraken-js 是基于express之上的,目的在于让工程师更多的去关注代 ...
- javascript - encodeURI和encodeURIComponent的区别
这两个函数功能上面比较接近,但是有一些区别. encodeURI:不会进行编码的字符有82个 :!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z, ...
- 高效开发Android App的10个建议
假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等 ...
- 告诉你吧,一套皮肤在winform与wpf开发模式下实现的界面效果同样精彩,winform界面和wpf界面。
一.同一资源: 二.先上软件界面: (1)wpf界面: 在wpf中实现这样类似web风格的软件界面就不用我多说了,在wpf实现这样的风格是很简单的,完全像网页设计一样的. (2)winform界面 在 ...
- Retrofit
Retrofit 标签(空格分隔): 第三方&开源 Retrofit是一套RESTful架构的Android(Java)客户端实现,基于注解,提供JSON to POJO(Plain Ordi ...
- git 基本配置及使用
GIT是个很方便的开发伴侣,这里 随笔记录下GIT工具的基本使用,也希望能帮到别人更快速的使用GIT. 一,安装软件 toroise是最常用也最习惯的工具了,已经是有支持GIT了. 二,生成密钥文 ...
- boost 1.56.0 编译及使用
boost的编译和使用,经过搜集资料和总结,记录成文.感谢文后所列参考资料的作者. 1 下载 地址:http://sourceforge.net/projects/boost/files/boost/ ...
- Promising Linking
Future/Promise 执行逻辑 scala Future 有几个要点,第一个是 tryAwait 需要借助 CowndownLatch 实现,第二个是可以在 Promise 挂载回调函数 首先 ...