struts2路径,常量,等一些xml配置文件
来源:互联网 发布:python语言基本语句 编辑:程序博客网 时间:2024/05/26 19:18
最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。
struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。
过去,我们用jsp和servlet搭配,实现展现时,大体的过程是:
1 jsp触发action
2 servlet接受action,交给后台class处理
3 后台class跳转到其他的jsp,实现数据展现
Struts 2 体系结构 :
1、Web浏览器请求一个资源。
2、过滤器Dispatcher查找方法,确定适当的Action。
3、拦截器自动对请求应用通用功能,如验证和文件上传操作。
4、Action的execute方法通常用来存储和重新获得信息。
5、结果被返回到浏览器。
搭建Struts 2 开发环境
1、找到开发Struts 2的应用需要用到的jar包。
2、编写Struts 2的配置文件。
<struts><!-- <package>元素有如下属性: name:包的名称。必须配置 extends:要继承的包,后面配置的是被继承的包的名称。(最好加上防止出现莫名其妙的错误) namespace:包的命名空间。可选 abstract:定义包为抽象的,也就是不能包含Action的定义。可选 --><package name="hello" namespace="/" extends="struts-default"><action name="hello" class="com.hyxd.action.HelloAction" method="hello"><result name="success">/index.jsp</result></action></package></struts>
3、在web.xml中加入Struts 2 MVC启动框架配置。
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 引入struts核心过滤器 --><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>
开发Struts 2 最少用到的jar文件:
Struts-core-2.x.x.jar : Struts 2 框架的核心类库
xwork-2.x.x.jar : XWork类库,Struts 2 在其上构建
ognl-2.6.x.jar : Object Graph Navigation Language , Struts 2 框架通过其读写对象的属性。
freemarker-2.3.x.jar : Struts 2 的UI标签的模版使用 Freemarker编写。
commons-logging-1.1.x.jar : ASF出品的日志包。
commons-fileupload-1.2.1.jar : 文件上传组件。
路径后缀问题:
先通过struts2的配置文件看看默认的路径后缀都有哪些。
struts.action.extension=action,,这个是struts2的默认后缀名空格或.action.我们也可以将其修改为其他形式
<struts><!-- name=key(对应的拦截器) value=value(你要设置的后缀名) --><constant name="struts.action.extension" value="do,action,html,,"></constant></struts>通配符问题:
在开发当中有很多的时候在调用同一个方法,和同一个页面,你需要写一堆的struts的配置信息,为了方便开发apache为struts提供了通配符
*:但不包括 / 字符. 如果想把 / 字符包括在内, 需要使用 **. 如果需要对某个字符进行转义, 需要使用 \.
{1}:这是作为占位符使用的,它将被通配符所匹配的值替换
<struts><package name="helloAction" extends="struts-default" namespace="/"><action name="*" class="com.hyxd.user.UserAction" method="{1}"><result name="login">/error.jsp</result></action></package></struts>
动态方法调用动态方法调用: 通过 url 动态调用 Action 中的方法,如果Action中存在多个方法时,我们可以使用!+方法名调用指定方法。默认情况下, Struts 的动态方法调用处于激活状态, 若想禁用该功能, 则可以在 struts.xml 文件中添加如下 constant 元素:
<struts><!-- key=DynamicMethodlnvocation拦截器 value=false --><constant name="struts.action.DynamicMethodlnvocation" value="false"></constant></struts>使用动态调用:
<form action="${pageContext.request.contextPath }/UserAction!add" method="post"> 用户名: <input type="text" name="user.name"> <br/> 密码: <input type="text" name="user.pwd"> <br/> <input type="submit" value="添加"> <br/> </form>
<struts><package name="user" extends="struts-default" namespace="/"><action name="UserAction" class="com.hyxd.user.UserAction"><result name="success">/index.jsp</result></action></package></struts>结果:
全局定义
当多个action中都使用到了相同result,为了避免result的重复,这时我们应该把result定义为全局结果。
<struts><!-- 如果全局和局部有同名的result,那么局部会覆盖全局的result。同一个应用中每次请求Struts2框架都会创建一个新的Action实例 --><package name="user" extends="struts-default" namespace="/"><global-results><result name="save">/index.jsp</result></global-results><action name="UserAction" class="com.hyxd.user.UserAction"></action></package></struts>
待续
- struts2路径,常量,等一些xml配置文件
- 指定struts2配置文件struts.xml的路径
- Struts2更改配置文件struts.xml默认路径
- Struts2中的一些常量
- Struts2常量配置文件加载顺序
- struts2配置文件中常用常量
- Struts2常量配置文件加载顺序
- Struts2配置文件复用代码【web.xml、struts.xml、常量配置】
- struts2配置文件路径
- struts2配置文件路径
- struts2 配置文件 struts.xml
- struts2.xml配置文件
- struts2配置文件 struts.xml
- Struts2的struts2.xml配置文件
- struts2 (2) struts2.xml配置文件
- struts2中的一些配置文件
- struts2中配置文件的常量使用方法
- struts2.0 配置文件、常量配置详解
- hive hadoop部署
- [高并发Java 一] 前言
- mysql数据库存储过程带游标模板
- Android实现腾讯新闻的新闻类别导航效果
- PAT (Advanced Level) 1037. Magic Coupon (25) 解题报告
- struts2路径,常量,等一些xml配置文件
- 【ORACLE】ORA-01031 insufficient privileges
- node.js学习笔记
- HTTP协议详解(真的很经典)
- Swift 系统学习 34 线程通信 Swift3.0 子线程下载图片主线程显示图片
- Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xm
- Install and cofigure Scrapy under Centos7
- Column 'code' not found
- How do adaptive cursor sharing and SQL Plan Management interact?