struts2--Basic(一)
Struts是流行和成熟的基于MVC设计模式的WEB应用程序框架。
帮助我们减少在运用MVC设计模式来开发Web应用的时间。

1、下载添加jar包

2、 准备配置文件
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>
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configure 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="default" namespace="/" extends="struts-default">
<action name="nyan" class="com.nyan.action.Demo01">
<result>/result.jsp</result>
</action>
</package> </struts>
3、 创建Action
package com.nyan.action;
import com.opensymphony.xwork2.ActionSupport;
public class Demo01 extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("执行Action");
return SUCCESS;//跟result 的 name 属性相对应
}
}
struts2核心文件:
web.xml
任何MVC框架都需要与Web应用整合,就需要借助web.xml文件,只有配置web.xml文件,Servlet才会被应用加载。
通常所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架,需要加载:
StrutsPrepareAndExecuteFilter
只要web应用加载了StrutsPrepareAndExecuteFilter,
StrutsPrepareAndExecuteFilter就会加载struts2框架。
struts.xml
该文件主要负责管理应用中的Action映射,以及该Action包含的Result定义
包含:全局属性、用户请求和响应Action之间的关系、Action可能用到的参数和返回结果、各种拦截器的配置
struts.propeties
访问Servlet-API:
struts提供三种方式访问:ActionContext、实现***Aware接口、ServletActionContext
Action搜索顺序:
http://localhost:8080/strutsDemo/path1/path2/nyan.action
第一步,判断package是否存在,如:path1/path2
存在(com.nyan.action)
判断action是否存在,如果不存在则去默认namespace的package里面寻找action
不存在(default)
检查上一级path1路径的package是否存在(直到默认namespace),重复第一步
三种动态方法调用:
1、指定method属性,2、感叹号方式,3、通配符方式
解决一个Action对应多个请求的处理,以免action太多
不仅仅是execute方法,通过指定method属性,感叹号方式,通配符方式
method:有多少个method就有配置多少个action
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
http://localhost:8080/strutsDemo/nyan!add.action
指定多个配置文件:
<include file=""/>
<constant name="struts.i18n.encoding" value="UTF-8"/>
默认Action:
解决找不到action问题
<default-action-ref name="index"/>
<action name="index">
<result>/error.jsp</result>
</action>
struts后缀:
<constant name="struts.action.extension" value="do"/>
接收参数:
1、使用Action的属性接收
login.jsp
<form action="LoginAction">
用户名:<input type="text" name="username"/><br>
密码:<input type="password" name="password"/><br>
<input type="submit" value="submit"/>
</form>
public class LoginAction extends ActionSupport {
private String username;//对应input的name属性的值
private String password;
//getter,setter....
public String login(){
System.out.println(username);
return "login";
}
<action name="LoginAction" method="login" class="com.nyan.action.LoginAction">
<result name="login">/success.jsp</result>
</action>
2、使用DomainModel接收
<form action="LoginAction">
用户名:<input type="text" name="user.username"/><br>
密码:<input type="password" name="user.password"/><br>
<input type="submit" value="submit"/>
</form>
private User user;//user对应user.username的user
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String login(){
System.out.println(user.getUsername());
return "login";
}
3、使用ModelDriven接收参数
<form action="LoginAction">
用户名:<input type="text" name="username"/><br>
密码:<input type="password" name="password"/><br>
<input type="submit" value="submit"/>
</form>
public class LoginAction extends ActionSupport implements ModelDriven<User>{
private User user = new User();
public String login(){
System.out.println(user.getUsername());
return "login";
}
@Override
public User getModel() {
return user;
}
}
处理结果类型:

struts2--Basic(一)的更多相关文章
- struts2默认配置文件 struts-default.xml
注:用的struts2的版本是2.1.6 strtus2的默认配置文件 struts-default.xml ,其中的默认的拦截器,包括其中的拦截器栈. 因为struts2的配置文件struts.xm ...
- Struts2 contentType属性列表
Struts2 contentType属性列表 博客分类: Struts 2 'ez' => 'application/andrew-inset', 'hqx' => 'applica ...
- [转]Struts2理解--动态方法和method属性及通配符_默认Action
众所周知,默认条件下,在浏览器输入indexAction!execute.action,便会执行indexAction类里的execute方法,这样虽然方便,但可能带来安全隐患,通过url可以执行Ac ...
- Struts2 基本配置
Struts2是一个优秀的MVC框架,也是我比较喜欢用的框架.它个各种配置基本都可以集中在一个xml文档中完成.现在让我们看看如何简单几步实现常用功能. 一.搭建Struts2的开发环境 1)首先是利 ...
- Struts2理解--动态方法和method属性及通配符_默认Action
众所周知,默认条件下,在浏览器输入indexAction!execute.action,便会执行indexAction类里的execute方法,这样虽然方便,但可能带来安全隐患,通过url可以执行Ac ...
- Struts2(五):ActionSupport
我们在上一章节中的一个列子中使用到了一个标识跳转到登录页面的例子: 示例是这样写的: index.jsp: <br/> <a href="gotoLoginPage&quo ...
- struts2:拦截器
拦截器(Interceptor)是Struts 2的核心组件,Struts 2框架的大部分功能都是通过拦截器来完成的,例如数据校验,国际化,文件上传和下载等.为了实现这些功能,Struts 2框架提供 ...
- 基于IDEA 最新Spirng3.2+hibernate4+struts2.3 全注解配置 登录
原文 基于IDEA 最新Spirng3.2+hibernate4+struts2.3 全注解配置 登录 首先说说 IDEA 12,由于myeclipse越来越卡,我改用idea12 了,发现其功能强悍 ...
- struts2环境搭建和第一个程序
环境搭建 项目目录 导入依赖jar包,如上图lib目录所示. 不同的版本可能会不一样,没关系在tomcat启动时,如果报错java.lang.ClassNotFoundException,我们可以按照 ...
- struts2文件上传,文件类型 allowedTypes
struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript ...
随机推荐
- SQLSERVER---- 通过位运算更改标志位
当给多个中心传输数据时,怎么标记哪些单位推送了,哪些单位没有更新,如果单独设置一个字段,一来说,扩展不足,另外会造成数据库冗余,这里可以采用SQLSERVER的位运算. 比如说,更新标志位为0,长度为 ...
- windows下composer安装
第一步:配置path.这里我的php在C:\… \php目录下面. 第二步: 方法一: 使用安装程序 这是将 Composer 安装在你机器上的最简单的方法. 下载并且运行 Composer-Setu ...
- js实现table内 某列的内容进行即时筛选
往往有些时候,我们把数据从数据库读取出来,显示到table里面,而此时来了个新需求,要在一个搜索框内输入关键字,表格的内容进行即时的筛选. 而即时触发进行数据库的查询,再回调显示,就显得慢,拖累服务器 ...
- spring工作原理理解
spring的工作原理 spring是作为一个容器存在的框架,可以加载spring web,spring mvc,spring orm,sprong aop,spring dao等框架和模块,其主要核 ...
- 手机touch事件
touchstart:触摸开始的时候触发 touchmove:手指在屏幕上滑动的时候触发 touchend:触摸结束的时候触发 而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点( ...
- FineUIPro中如何支持多语言(全局资源文件和本地资源文件)
一个客户在邮件中问到了FineUIPro的多语言实现问题,其实 FineUIPro 并没有对此做特殊处理,因此直接使用 ASP.NET 原生支持的资源文件就能实现. 下面我们就以FineUIPro的空 ...
- vue Element UI 导航高亮
1. activeIndex 为默认高亮值,根据改变activeIndex的值来改变高亮的值 当页面改变的时候获取当前的路由地址,截取第一个 / 后面的值,就是当前的高亮值了 为什么要截取呢? 因为点 ...
- xlrd python excel
xlrd python excel
- Moore-Penrose Matrix Inverse 摩尔-彭若斯广义逆 埃尔米特矩阵 Hermitian matrix
http://mathworld.wolfram.com/Moore-PenroseMatrixInverse.html 显然,埃尔米特矩阵主对角线上的元素都是实数的,其特征值也是实数.对于只包含实数 ...
- netbeans无法新建项目
在ubuntu上安装netbeans最新版(7.3.1),但是安装之后发现无法新建项目,一直提示请等待,google之后说是jdk的问题,查看了一下jdk的版本为1.6.试着安装了1.7版本的,问题解 ...