当前位置: 首页 > news >正文

Struts入门(二) 配置文件的讲解

   

  上一章我们演示了Struts项目的搭建  可以看到里面有几个重要的配置文件  下面我们来说明一下这3个配置文件

  1.web.xml

  2.strtus.xml

  3.struts.properties

1.web.xml

我们所学习的是MVC框架  不管是java还是.net 只要是web应用 就需要配置文件 .net中我们使用web.config来进行相关配置  Java中Servlet的应用则需要web.xml的配置

  通常,所有的mvc框架都需要web应用加载一个核心控制器  对于Struts而言 则需要加载

StrutsPrepareAndExecuteFilter  其他不用管   web应用加载它后  struts2的框架会由它进行加载

web.xml如下  这里添加了struts2的过滤器配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 3   <display-name>StrutsDemo</display-name>
 4   
 5   <filter>
 6       <filter-name>struts</filter-name>
 7   
 8       <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 9   </filter>
10   
11   <filter-mapping>
12       <filter-name>struts</filter-name>
13       <url-pattern>/*</url-pattern>
14   </filter-mapping>
15   
16   <welcome-file-list>
17     <welcome-file>index.html</welcome-file>
18     <welcome-file>index.htm</welcome-file>
19     <welcome-file>index.jsp</welcome-file>
20     <welcome-file>default.html</welcome-file>
21     <welcome-file>default.htm</welcome-file>
22     <welcome-file>default.jsp</welcome-file>
23   </welcome-file-list>
24 </web-app>
View Code

 

2.struts.xml

 struts.xml中包含的内容:

  1.全局属性

  2.用户请求和相应Action之间的对应关系

  3.Action可能用到的参数和返回结果

  4.各种拦截器的配置

 1 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
 2 <struts>
 3 
 4     <!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 -->
 5     <include file="struts-default.xml"></include>
 6     
 7     
 8     <!-- package提供了将多个Action组织为一个模块的方式
 9         package的名字必须是唯一的 package可以扩展 当一个package扩展自
10         另一个package时该package会在本身配置的基础上加入扩展的package
11         的配置 父package必须在子package前配置 
12         name:package名称
13         extends:继承的父package名称
14         abstract:设置package的属性为抽象的 抽象的package不能定义action 值true:false
15         namespace:定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action
16      -->
17     <package name="com.kay.struts2" extends="struts-default" namespace="/test">
18         <interceptors>
19             <!-- 定义拦截器 
20                 name:拦截器名称
21                 class:拦截器类路径
22              -->
23             <interceptor name="timer" class="com.kay.timer"></interceptor>
24             <interceptor name="logger" class="com.kay.logger"></interceptor>
25             <!-- 定义拦截器栈 -->
26             <interceptor-stack name="mystack">
27                 <interceptor-ref name="timer"></interceptor-ref>
28                 <interceptor-ref name="logger"></interceptor-ref>
29             </interceptor-stack>
30         </interceptors>
31         
32         <!-- 定义默认的拦截器 每个Action都会自动引用
33          如果Action中引用了其它的拦截器 默认的拦截器将无效 -->
34         <default-interceptor-ref name="mystack"></default-interceptor-ref>
35         
36         
37         <!-- 全局results配置 -->
38         <global-results>
39             <result name="input">/error.jsp</result>
40         </global-results>
41         
42         <!-- Action配置 一个Action可以被多次映射(只要action配置中的name不同)
43              name:action名称 http://localhost:8080/ProjectName/hello.action
44              class: 对应的类的路径
45              method: 调用Action中的方法名
46         -->
47         <action name="hello" class="com.kay.struts2.Action.LoginAction">
48             <!-- 引用拦截器
49                 name:拦截器名称或拦截器栈名称
50              -->
51             <interceptor-ref name="timer"></interceptor-ref>
52         
53             <!-- 节点配置
54                 name : result名称 和Action中返回的值相同 
55                 type : result类型 不写则选用superpackage的type struts-default.xml中的默认为dispatcher
56              -->
57          <result name="success" type="dispatcher">/talk.jsp</result>
58          <!-- 参数设置 
59              name:对应Action中的get/set方法 
60          -->
61          <param name="url">http://www.sina.com</param>
62         </action>
63     </package>
64 <!--  可以在包外面定义常亮  和struts.properties 写法一致-->
65   <constant name="struts.i18n.reload" value="true"></constant>
66 </struts>
View Code

 

 3.struts.properties

这里就列举几个常用的属性 

 

 

这就是三个文件的配置以及说明

其中第三个文件完全可以写到struts.xml中去

在package标签外面

<!--  可以在包外面定义常亮  和struts.properties 写法一致-->
  <constant name="struts.i18n.reload" value="true"></constant>
</struts>

这样就可以省去 properties文件中的配置了

 

转载于:https://www.cnblogs.com/DemoLee/p/6291084.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • flex rpc 错误整理
  • 提高网页关键词排名的实用方法
  • 疯狂Java讲义(十一)---- 初始化块
  • java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
  • javaweb学习总结(三十六)——使用JDBC进行批处理
  • java数据库设计的14个技巧
  • Population Genetics and Demography Unite Ecology and Evolution
  • 三种不同数据库取前10条记录
  • 算法:正面硬币
  • failed to connect session timed out
  • kylin的状态栏(启动器)改成ubuntu之前的样子
  • java页面抓取代码
  • 【bzoj3730】 震波
  • flex分页代码
  • 蒟蒻ACMer回忆录 · 一段弱校ACM的奋斗史
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【Leetcode】104. 二叉树的最大深度
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Docker入门(二) - Dockerfile
  • es6
  • JavaScript设计模式之工厂模式
  • JSDuck 与 AngularJS 融合技巧
  • js操作时间(持续更新)
  • linux学习笔记
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • swift基础之_对象 实例方法 对象方法。
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 百度地图API标注+时间轴组件
  • 三分钟教你同步 Visual Studio Code 设置
  • 跳前端坑前,先看看这个!!
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 你对linux中grep命令知道多少?
  • 阿里云重庆大学大数据训练营落地分享
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #vue3 实现前端下载excel文件模板功能
  • $.ajax()方法详解
  • (arch)linux 转换文件编码格式
  • (Ruby)Ubuntu12.04安装Rails环境
  • (SERIES12)DM性能优化
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (七)理解angular中的module和injector,即依赖注入
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (五)网络优化与超参数选择--九五小庞
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (已解决)什么是vue导航守卫
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • ../depcomp: line 571: exec: g++: not found