当前位置: 首页 > 面试题库 >

Struts 2-使用任何URL的映射动作

商池暝
2023-03-14
问题内容

我正在使用Struts2创建一个Web应用程序,并且与任何URL一起使用的映射操作都存在问题。

在我的struts.xml文件中,我配置了一个带有“ / registration”名称空间的软件包,其中包含一些动作,其中一个主要是“
register”。我的应用程序的上下文根是“ app / test”。

要访问注册表格,我可以转到“ localhost:8080 / app / test / registration /
register.action”,它可以加载我的表格并且效果很好。

但是,如果在名称空间之后将任何内容添加到URL,例如“ localhost:8080 / app / test / registration /
arbitrary / text / here / register.action”,则仍会加载表单。

我想防止这种情况的发生,因此您只能访问表单的正确URL。我在struts.xml和web.xml中尝试了许多不同的配置选项,但都无济于事,而且我无法在Web上轻松找到有关此问题的知识。

任何帮助将不胜感激,谢谢!

struts.xml

<struts>
    <package name="myPackage" namespace="/registration" extends="struts-default">
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
        </result-types>
        <action name="register" class="edu.uconn.test.action.RegistrationAction" method="input">
            <result name="input" type="tiles">/register.tiles</result>
        </action>
    </package>
</struts>

问题答案:

struts.mapper.alwaysSelectFullNamespace常量设置为true

<constant name="struts.mapper.alwaysSelectFullNamespace" value="true" />

当利用S2对URL中任意参数的支持(例如,通配符,正则表达式模式匹配)时,这可能会产生意想不到的后果。



 类似资料:
  • 主要内容:映射拦截动作,参考Struts 2的开发者用来声明行为属于一个包,扩展 “struts-default“, 其中包含默认设置的拦截。 拦截器的默认设置进行分组为“defaultStack”在struts-default.xml文件中,它位于 struts2-core.jar 文件,“defaultStack”提供所有的核心Struts2功能,这是最适合应用的需要。 试着学习struts-default.xml文件,

  • 我想将我的应用程序迁移到Spring Boot Jar部署。它目前使用没有启动的Spring4。 我在上有一个REST-API侦听器,在上有一个JavaScript-fronten,可以在上访问。 现在我找不到在靴子里做同样的事情的方法。 通过更改属性,我设法在处获得了api监听,但是我没有在处注册第二个servlet来为我的js-frontend服务。我知道jar部署不支持,我还知道Spring

  • 问题内容: 我有一个内容为web.xml的文件: 我尝试过要求 这两个请求都由Servlet2处理。为什么? 更新 谢谢你们的帮助。我意识到行为取决于servlet映射声明的顺序。我尝试了这个web.xml 结果: 问题答案: 从Servlet 3.0 规范开始,这是Web容器在收到请求后必须定位servlet的方式(重点是我的): 用于映射到servlet的路径是来自请求对象的请求URL减去上下

  • 我试过请求 这两个请求都由Servlet2处理。为什么? 更新 结果:

  • Nutz.Mvc 的核心任务就是将 HTTP 请求的 URL 映射到某一个入口函数,如果你看完了 Nutz.Mvc 概述 你大概应该知道,映射的配置信息是通过注解 @At 来设置的,@At 注解也非常简单,配置起来应该没有什么障碍。 但是,依然在某些时候,你会在你的应用出现 404 错误,为了能让你在编写项目是,心里非常有底,这里将详细的解释一下 JSP/Servlet 以及 Nutz.Mvc 映

  • 现在我们已经有了前面章节中解释的工作视图。 我们想通过URL访问该视图。 Django有自己的URL映射方式,它是通过编辑项目url.py文件(myproject/url.py) 。 url.py文件看起来像 - from django.conf.urls import patterns, include, url from django.contrib import admin admin.au