Java进阶:Struts多模块的技巧
发布时间:2023-06-18 09:40:47
在使用struts多模块的,找到一些小技巧和经验,与大家分享一下。
关于多module的配置就不说了,只需要用不同的config,
struts-config.xml作为默认module, struts-config-module.xml作为/module的配置
CSDN上有不少相关的说明。
struts中的module,实际上就类似于平日里开发web程序中的子目录
如
/- root
/music
/module
/...
例如上面的/music作为模块名
那么struts-config-music中的所有path默认即/music/xxx.do
一些教程中说要把jsp页面放入/web-inf中,这是个很好的方法,
一开始我也这么做,可惜,struts的action标签不支持contextRelative,只有forward支持
所以,如果要使用/xxx.do直接redirect或者forward到某个页面是行不通的。
因为他们的地址相对于/music/web-inf/xxx.jsp 这样就找不到了。
我的建议是,root下面的目录要和module一致。
例如
/
/moduleA
/moduleB
虽然安全性有些降低,但使用起来非常方便。
一般的,要写一个link,可以通过<html:link>来写
<html:link action="/module/action" >
他的好处是内置的支持module,不需要自己写.do,这就可以使得你的.do
任意的修改为别的而不影响程序运行。例如,.jspa,假装一下webwork
默认的<html:link>是相对module的。例如进入了/module/actionA指向的页面
在这个页面中,所有的link都被转换为相对于/module 如<html:link action="/actionB" >,实际上是/module/actionB
那么,如果要执行默认module的action怎么办?嘿嘿,其实很简单。我开始的时候绞尽脑汁,用了switchAction来解决/module/switch?prefix=&page=/xxx.do&.... 多麻烦
实际上,一个传统的办法可以有效解决。即<html:link action="../action" >
可以回到上一层的module中。我开始可真没想到。
link标签有page,href,action三种不同的链接方法。
其中,action默认的指向某个path,page指向一个jsp页面,也是相对于module的href可以写外部url.
猜你喜欢
- 背景后台系统需要接入 企业微信登入,满足企业员工快速登入系统流程图简单代码说明自定义一套 springsecurity 认证逻辑主要就是 根
- 本文实例讲述了C#启动进程的几种常用方法。分享给大家供大家参考。具体如下:1.启动子进程,不等待子进程结束private void simp
- 已知字符串“aabbbcddddeeffffghijklmnopqrst”编程找出出现最多的字符和次数,要求时间复杂度小于O(n^2)/**
- .c 源程序 ----- 编译 ----- 链接 ---- exe ----运行 -------->程序翻译环境和执行环境翻译环境:源
- 报错翻译: compileSdkVersion android-24”需要JDK 1.8或更高版本编译。报错现象如下图:原因:st
- 前言前面介绍了APP顶部导航栏AppBar,今天来介绍下Flutter实现APP底部导航栏。我们以仿写微信的底部导航栏来举例说明。要实现类似
- 对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,
- Android 微信摇一摇功能实现,最近学习传感器,就想实现摇一摇的功能,上网查了些资料,就整理下。如有错误,还请指正。开发环境Androi
- 1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)&nb
- 在观察者模式中有2个要素:一个是被观察对象,另一个是观察者。但被观察对象的状态发生改变会通知观察者。举例:把订阅报纸的人看作是观察者,把报纸
- 1 自定义类加载器自定义类加载器的代码很简单,只需要继承ClassLoader类,覆写findClass方法即可其默认实现是会抛出一个异常:
- 协议做如下规定:规定数据协议:序列号 长度 状态字 数据长度 数据1 &n
- feign传输List的坑无法直接传输List错误方法1@RequestMapping(value = "/stat/mercha
- Android ListView的Item点击效果的定制
- 在本博客中,可以找到一篇《c#实现输出的字符靠右对齐的示例》它有教大家怎样实现字符串输出进行左齐或者是右对齐。本篇的方法,超简单,是使用st
- 就网络和应用程序而言,键盘快捷键很重要,今天我们要谈的便是让这类快捷键得以在Flutter运作的小部件:Focus、Shortcuts和Ac
- 为什么要使用路由在之前我们的代码中,页面跳转使用的代码如下所示:Navigator.of(context).push( Mate
- 本文实例为大家分享了Struts2框架拦截 器实例的示例代码,供大家参考,具体内容如下在看拦截 器的小例子的前我们先来看看sturts2的原
- Navigator 的 push 和 pop方法Navigator 导航器的 push 和 pop 方法可以携带参数在页面间传递,其他变形的
- 本文实例讲述了C#实现对Json字符串处理方法,分享给大家供大家参考。具体分析如下:一般对于web应用开发人员来说对Json字符串都会很熟悉