我有一个使用Struts2作为MVC框架的网站。我需要重新设计JSP。我需要将旧JSP与新JSP一起访问。所以我添加了/newdesign/
的根文件夹,并将所有现有的JSP文件夹复制到其中。
因此,如果我使用名称/值对?newdesign=true
登录(例如)我是初始请求,那么我可以:
/newdesign/
作为struts.xml
中标记的全局前缀,用于确定是否为相关Action加载了新旧JSP。这样开发人员可以检查是否所有旧页面都已重新整理到新页面中。
我如何做上面的第2部分?
- 我已经看过使用struts.convention.result.path = /newdesign
,但这不是动态的,如果要向用户显示旧的或新的JSP,我就无法更改它。
答案 0 :(得分:0)
如果您知道第1部分,则假设您可以将参数设置为应该重定向到包含与您的参数newdesign
对应的命名空间的其他包的相应操作的操作。
url中使用的操作名称的前缀指定用于分隔包中操作的命名空间。
如果您有多个模块具有相同的操作名称和结果但位置不同,这些模块依赖于命名空间,那么您应该在具有自己的命名空间的不同包中配置它们。有一个example可以让你更好地理解名称空间概念。
您可以配置与新设计模块一样多的软件包。如果它们不是太多那么它就像在例子中那样简单地完成。但是,不是根据参数切换到适当的命名空间,而是可以将该参数添加到通过wildcard mappings使用的命名空间模式。