1. 载入中struts2的dtd文件。使struts.xml网络无法验证,和eclipse有技巧

在src在创建struts.xml:

<?

xmlversion="1.0"encoding="UTF-8"?

>

<!DOCTYPE strutsPUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

解压struts2/lib下的core.jar。

找到struts-2.3.dtd,解压出来。

eclipse > 首选项 > xml > xml catalog > user specified entries> add

location 选择本地dtd文件。key type为选uri;uri为 http://struts.apache.org/dtds/struts-2.3.dtd

2. <struts></struts>中的元素为:

<beans />  <constant /> <include /> <package /> <unknown-handler-stack />

经常使用的常量constant:

<!-- 开发模式为true时,即时生效。改动struts配置文件时不用又一次部署 -->

<constant name="struts.devMode" value="true"/>

<!-- 动态方法调用 默认关闭的 听说不安全 调用时匹配规则:actionName!methodName.action  后缀.action可省略-->

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>

package的使用:

<!--

在struts-default.xml中定义了一个package名为 struts-default

extends继承自struts-default

namespace:表示訪问时的url地址前缀 即訪问路径为:/appName/abc/xxx.action   .action能够省略

-->

<package name="test1" extends="struts-default" namespace="/abc"> <action/></package>

3. package中的元素顺序为:

result-types
  interceptors
  default-interceptor-ref
  default-action-ref
  default-class-ref
  global-results
  global-exception-mappings
  action*(全部action放到最后)

不遵循该顺序会xml验证会报错

4. action配置

4.1 直接跳转

<action name="forward"><result>/WEB-INF/test.jsp</result>
</action>

訪问地址:http://.../appName/forward.action     .action能够省略

4.2 依据action-class的返回值进行跳转

<!--
class 是一个含有详细action方法的类。未指明method属性时。默认调用execute方法 -->
<action name="TestAction" class="com.stone.action.MyAction">
<!-- result 为方法的返回值 --><result name="success">/WEB-INF/test.jsp</result>
</action>

訪问地址:http://.../appName/TestAction      运行com.stone.action.MyAction的 execute方法。返回值为success则跳转到对应页面

4.3 指明action-class的method

<!-- class 是一个含有详细action方法的类, 指定了方法
Struts2在依据action元素的method属性查找方法时有两种途径:1.查找与method属性值全然一致的方法.    方法名为methodAction2.查找doMethod()形式的方法           或方法名为doMethodAction
-->
<action name="methodAction"class="com.stone.action.MyAction" method="testMethod"><result name="test2">/WEB-INF/test2.jsp</result>
</action>

訪问地址:http://.../appName/methodAction    运行com.stone.action.MyAction的testMethod或者是doTestMethod方法,其返回值与result-name匹配

4.4 不指明action-class的method。依据訪问的形式进行Action的动态方法调用

须要先开启动态方法调用,即配置相关常量。

<action name="testDynamic" class="com.stone.action.EditAction"><result name="add">/WEB-INF/edit_add.jsp</result><result name="delete">/WEB-INF/edit_delete.jsp</result>
</action>

訪问地址:http://.../appName/testDynamic!add  运行com.stone.action.EditAction的add方法

若訪问地址为  .../testDynamic!delete 则运行EditAction的delete方法。

4.5 通配符和占位符匹配

4.5.1  通配符* 表示随意字符

<action name="edit*" class="com.stone.action.EditAction" method="add"><result name="add" type="redirect">http://www.baidu.com</result>
</action>

訪问地址:http://.../appName/edit后接随意字符 运行com.stone.action.EditAction的add方法

方法返回add时,重定向到baidu

4.5.2 通配符和占位符一起使用,class中有占位符

<action name="news*" class="com.stone.action.News{1}Action"><result name="{1}" type="dispatcher">/WEB-INF/jsp/News_{1}.jsp</result>
</action>

{1}即表示第1个通配符*所代表的字符串  如有多个通配符 即 {1}  {2} {3} ...
   訪问地址:http://.../appName/newsAdd  运行com.stone.action.NewsAddAction的execute方法

方法返回Add时,跳转到/WEB-INF/jsp/News_Add.jsp

注意:当前占位符放在class中时。可能会出现找不到class定义的情况,这时通过定义struts的全局异常处理

也是没有作用的。

由于全局异常处理,仅仅是处理action 中的异常。

所以一般不要在class中使用占位符进行匹配

4.5.3 通配符和占位符一起使用 method中有占位符

<action name="book_*" class="com.stone.action.BookAction" method="{1}"><result name="{1}" type="dispatcher">/WEB-INF/jsp/book_{1}.jsp</result>
</action>

訪问地址:http://.../appName/book_add 运行com.stone.action.BookAction的add方法

方法返回add时,跳转到/WEB-INF/jsp/book_add.jsp

注:该action。假设訪问的是以book_开头。可是method訪问不到。 则适用action中出异常这样的情况,能够由struts捕获处理

版权声明:本文博客原创文章,博客,未经同意,不得转载。

JavaEE SSH集成框架(两) struts2 本地加载dtd文件,action组态相关推荐

  1. 基于Netty手工实现springMVC框架-----两种方式加载控制器

    1.手写springMVC框架 本篇我们通过两种方式来加载控制器,一种是配置文件的方式:另外一种是通过注解的形式. 1.配置文件方式 1.自定义Controller配置文件XML 我定义的格式如下: ...

  2. Webpack/Vue-cli两种方式加载markdown文件并实现代码高亮

    准备的资源: highlight.js : 实现代码高亮,通过npm install highlight.js -D安装 vue-markdown-loader:解析md文件的必备loader,通过n ...

  3. 通过加载 QSS 文件的方式美化 QT 界面

    通过加载 QSS 文件的方式美化 QT 界面 1 配置工程 在进行配置之前,建议先在工程的根目录下新建一个 .qss 文件,方便后面的添加 1.打开目标工程,选中此工程,鼠标右键单击 Add New ...

  4. java ee ssh三大框架知识点_详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)...

    详解JAVAEE--SSH三大框架整合(spring+struts2+hibernate) 发布时间:2020-09-17 13:34:05 来源:脚本之家 阅读:64 作者:kent鹏 一.整合原理 ...

  5. 在Vs2017上集成osgearth3.2和qt5.9,并加载shp文件。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.QT5.9在vs上部署 1.1 在Vs中下载插件 1.2 配置QT 二.OsgEarth3.2环境配置. 三.在Q ...

  6. CloudMounter for mac(云盘本地加载工具)

    CloudMounter mac版是Macos上一款云盘本地加载工具,CloudMounter mac下载用于将云存储和Web服务器作为本地磁盘安装到Mac.CloudMounter for mac通 ...

  7. Android框架之路——Glide加载图片(结合RecyclerView、CardView)

    Android框架之路--Glide加载图片 一.简介: 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开 ...

  8. combotree 可以异步加载吗_Unity AssetBundle 资源打包,加载,本地缓存方式,安卓,PC本地加载路径问题...

    AssetBundle的定义和作用: 1,AssetBundle是一个压缩包包含模型.贴图.预制体.声音.甚至整个场景,可以在游戏运行的时候被加载. 2,AssetBundle自身保存着互相的依赖关系 ...

  9. 通过Console口本地加载系统程序

    以下内容摘自目前正在全国热销.已加码重印的<Cisco/H3C交换机配置与管理完全手册>(第二版).新上市的姊妹篇<Cisco/H3C高级配置与管理技术手册>同步热销中.卓越网 ...

最新文章

  1. Eclipse导出可执行Jar文件(包含第三方Jar包)
  2. BOOST_CURRENT_FUNCTION宏用法的测试程序
  3. 大话西游之Office应用实例系列! 13
  4. Eclipse配置工程自动执行ant实现热部署
  5. 数组:完成等差等比数列,及其他数列
  6. android中文转字节数组,如何将Android中的byte []转换为C中的uint8_T数组?
  7. CAN收发器SN65HVD230,实际应用案例分析
  8. html 网站右侧导航,页面右侧固定导航.html
  9. @程序员,你该如何做职业规划才能不被“废”?
  10. XAML实例教程系列 - 标记扩展(Markup Extensions)
  11. 删除需要TrustedInstaller权限的文件
  12. 三极管三种基本放大电路
  13. oracle detele,Oracle中,一个Delete操作的流程
  14. win10系统魔兽世界无法连接服务器地址,win10系统魔兽世界无法启动3d加速怎么解决...
  15. Thrift交流(二)thrift服务端和客户端实现 Nifty
  16. 人脸识别c语言正方形,Matlab实现的基于FLD的人脸识别系统源代码
  17. c语言产生50以内随机数,C语言产生随机数
  18. GitHub 上 22 万star的第一抢票神器,3秒钟抢到!
  19. JS中数组(Array)、Json对象长度(length)获取方法
  20. 好用速度又快,多御安全浏览器下载安装教程

热门文章

  1. 项目中的技巧经验汇总
  2. About DotNetNunk
  3. 28个HTML5特征、窍门和技术
  4. JS基础入门篇(一)
  5. nginx的平滑升级方法:
  6. Angular路由--基本用法
  7. Hawk原理:通过IEnumerable实现通用的ETL管道
  8. 函数重载(续)==》函数重载和函数指针在一起
  9. j2recover----最强大的jfs2文件恢复工具
  10. 上海技术英雄会续:几个典型问题的看法