Spring 3 简单的无扩展 url 映射与基于注释的映射 - 不可能吗?

2023-12-31

我正在使用 Spring 3,并尝试使用注释来定义控制器映射来设置一个简单的 Web 应用程序。如果不使用 *.form 或 *.do 填充所有网址,这似乎非常困难

由于网站的部分内容需要密码保护,因此这些网址均位于 /secure 下。有一个<security-constraint>在 web.xml 中保护该根目录下的所有内容。我想将所有 Spring 控制器映射到 /secure/app/。

示例 URL 为:
/安全/应用程序/登陆页面
/secure/app/edit/customer/{id}
我将使用适当的 jsp/xml/其他内容来处理每一个。

所以,在 web.xml 中我有这个:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/secure/app/*</url-pattern>
</servlet-mapping>

在 despatcher-servlet.xml 中我有这个:

 <context:component-scan base-package="controller" />

在控制器包中我有一个控制器类:

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

@Controller
@RequestMapping("/secure/app/main")
public class HomePageController {
    public HomePageController() { }

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView getPage(HttpServletRequest request)
    {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("main");
        return mav;
    }
}

在 /WEB-INF/jsp 下,我有一个“main.jsp”,并设置了一个合适的视图解析器来指向它。使用 *.form 映射调度程序时,我的工作正常,但使用上面的代码无法使任何工作正常工作。

当 Spring 启动时,它似乎正确映射了所有内容:

13:22:36,762  INFO main annotation.DefaultAnnotationHandlerMapping:399 - Mapped URL path [/secure/app/main] onto handler [controller.HomePageController@2a8ab08f]

我还注意到这一行,看起来很可疑:

13:25:49,578 DEBUG main servlet.DispatcherServlet:443 - No HandlerMappings found in servlet 'dispatcher': using default

在运行时,任何查看 /secure/app/main 的尝试都会在 Tomcat 中返回 404 错误,日志输出如下:

13:25:53,382 DEBUG http-8080-1 servlet.DispatcherServlet:842 - DispatcherServlet with name 'dispatcher' determining Last-Modified value for [/secure/app/main]    
13:25:53,383 DEBUG http-8080-1 servlet.DispatcherServlet:850 - No handler found in getLastModified    
13:25:53,390 DEBUG http-8080-1 servlet.DispatcherServlet:690 - DispatcherServlet with name 'dispatcher' processing GET request for [/secure/app/main]    
13:25:53,393  WARN http-8080-1 servlet.PageNotFound:962 - No mapping found for HTTP request with URI [/secure/app/main] in DispatcherServlet with name 'dispatcher'    
13:25:53,393 DEBUG http-8080-1 servlet.DispatcherServlet:677 - Successfully completed request

那么... Spring 映射了一个 URL,然后在一秒钟后“忘记”了该映射?到底是怎么回事?

Thanks.


我和你有完全相同的问题。设置“alwaysUseFullPath”的方法非常简单。我的conf文件如下:

<bean
    class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"
    p:order="3" > <!-- a higher value meaning greater in terms of sorting.  -->
    <property name="alwaysUseFullPath" value="true" />
    <property name="interceptors">
        <list>
            <ref local="myInterceptor" />
        </list>
    </property>
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="alwaysUseFullPath" value="true" />
</bean>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 3 简单的无扩展 url 映射与基于注释的映射 - 不可能吗? 的相关文章

  • 用Java截取网页的屏幕截图[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个免费的工具可以读取给定的网页并截取它的屏幕截图 我使用 VirtualFramebuffer 和 Firefox Binary
  • CDI 对象无法使用注入的构造函数进行代理

    当尝试将参数注入 CDI bean ApplicationScoped 的构造函数时 我遇到以下问题 Caused by org jboss weld exceptions UnproxyableResolutionException WE
  • CustomTaskChange 在调用 updateSQL 时实际执行

    我有一个CustomTaskChange在 Liquibase 中 除了其他变更集 我希望我的应用程序在实际执行之前显示所有 ChangeSet 的 SQL 以我的理解 updateSQL应该预览 SQL 并且不执行任何操作 ACustom
  • Java 密钥库 - 以编程方式从密钥库文件中选择要使用的证书

    我有一个 java 密钥库文件 其中包含多个客户端证书 我希望在 Java 应用程序中仅选择其中一个证书来连接到服务 有没有一种简单的方法可以做到这一点 到目前为止 我找到解决方案的唯一方法是使用原始密钥库文件中的客户端证书详细信息 通过其
  • 是否可以使用 Spring 2.5 在不同的窗口选项卡中维护不同的会话(用户)?

    我们有一个要求 即在浏览器窗口的不同选项卡中支持不同的用户 我们如何在 Spring 2 5 中实现这一目标 该应用程序基于用户 用户将拥有自己的代理和文章 内部用户应该能够同时在不同选项卡中登录不同的用户帐户并操作其数据 任何帮助深表感谢
  • 如何获取JavaFX的版本号?

    如何在运行时找出我正在使用哪个版本的 JavaFX 简单的方法之一就是简单地阅读javafx properties文件位于您的 JAVA HOME jre lib目录 我现在安装了 Java 1 7 u9 与之捆绑的 JavaFX 是 v2
  • 如何使用 Java2D 创建硬件加速图像?

    我正在尝试创建一个快速图像生成器 它可以执行大量 2d 转换和形状渲染 因此我尝试使用 BufferedImage 然后获取 Graphics2D 对象来执行所有绘图 我现在主要关心的是 make 速度非常快 所以我创建一个像这样的 Buf
  • 如何使用 Selenium WebDriver 和 Java 滚动特定的 DIV?

    WebDriver 无法识别某些 WebElement WebDriver 无法找到浏览器可见区域中不可见的元素 In order to make the WebElement viewable by WebDriver We need t
  • 对 Java Servlet 进行单元测试

    我想知道对 servlet 进行单元测试的最佳方法是什么 只要内部方法不引用 servlet 上下文 测试内部方法就不是问题 但是测试 doGet doPost 方法以及引用上下文或使用会话参数的内部方法呢 有没有办法简单地使用经典工具 例
  • 模板解析时发生错误。 (Spring Boot + Thymeleaf)

    我有一个用于提供图像的 Spring Boot 我的模型包含在我的 ImageController java 中 图像服务包含findPage method 当运行我的 Spring Boot 应用程序时 我收到此错误 2018 06 21
  • Java RCP/SWT - Eclipse RCP 中的“Android Toast like”对话框

    有谁知道是否存在某些弹出窗口的实现 例如 Android TOAST 通知是以下内容的一部分迈林公共区 https projects eclipse org projects mylyn commons 要集成它们 请添加Mylyn Com
  • 在java中迭代日期

    我需要遍历一系列日期 不确定如何在 for 循环中获取第二天 我在用java util Date So plusDays 1 不能在 for 循环中用于获取下一个日期 Used date1 new Date date1 getTime 10
  • Java 线程 JavaDoc

    我编写了一个只能在特定线程上调用的方法 是否应该将标准注释或注释添加到方法的 javadoc 中来表示这一点 不知道有任何这样的标准注释 Java 并发实践 http www javaconcurrencyinpractice com 在第
  • Eclipse:对 Java 1.7 的失望(未绑定库)

    我在全新安装的 Eclipse 中处理全新项目时遇到问题 重现步骤 下载此版本的 Eclipse http www eclipse org downloads packages eclipse ide java developers hel
  • 用于计算句子中单词数的正则表达式

    public static int getWordCount String sentence return sentence split a zA Z0 9 a zA Z0 9 1 length sentence replaceAll a
  • 如何使用二叉树中的递归来完成回溯

    我正在尝试插入一个二进制节点 我的代码很复杂 没有希望挽救它 所以我计划重写它 基本上我没有考虑回溯 也没有仔细考虑算法 我正在尝试使用顺序遍历插入二进制节点 但我不明白应该如何回溯 D B E A C F 我如何搜索根 D 的左子树 然后
  • 参数列表中的“...”是什么意思? doInBackground(字符串...参数)

    我不明白那个语法 尝试用谷歌搜索各种单词加上 是没有用的 它被称为varargs http java sun com j2se 1 5 0 docs guide language varargs html 这个事实应该产生更好的谷歌结果 h
  • 通过命令行参数更改默认的 ant 目标

    最近我被分配了一个任务 让ant能够为不同的环境构建war包 除了一项功能外 我几乎完成了 蚂蚁接受一个env参数类似 Denv DEV 并使用不同的配置文件来制作war包 但默认目标是start它将构建 部署并启动 tomcat 我不希望
  • 术语“可序列化”是什么意思? [复制]

    这个问题在这里已经有答案了 不太确定我读过的定义可序列化实际上做了什么 import java io Serializable import java text StringCharacterIterator import java uti
  • 获取给定字符串日期中该月的最后一天

    我的输入字符串日期如下 String date 1 13 2012 我得到的月份如下 SimpleDateFormat dateFormat new SimpleDateFormat MM dd yyyy Date convertedDat

随机推荐

  • WebAPI中DependencyResolver.SetResolver和HttpConfiguration.DependencyResolver有什么区别

    我有现有的项目 它使用 AutoFac 作为 IoC 在注册代码中我有这些行 var resolver builder Build DependencyResolver SetResolver new AutofacDependencyRe
  • 使用 Hammer.js 和 .on() 绑定事件

    Hammer js http eightmedia github com hammer js 向我的网络应用程序添加了 javascript 触摸和手势支持 我的问题在于将 hammer 与 DOM 元素一起使用 这些元素在文档准备好后调用
  • WPF VirtualizingStackPanel 可提高性能

    我想要一个关于如何实现 virtualizingstackpanel 的简单描述ItemsControl这是数据绑定到ObservableCollection在我的 MVVM 中 我有一个ItemsControl选项卡控件中每个选项卡的实例
  • java 的 makefile

    我不明白我的 makefile 做错了什么 JAVA SRCS wildcard tasks src java JAVA CLASSES subst src build JAVA SRCS java class JFLAGS cp jar
  • Maven 搜索 site.xml 缺少的英语语言环境

    在使用 Maven 构建项目期间 我在更新其父项目的版本后遇到生成 javadoc 的问题 2016 08 18 16 06 44 559 INFO lt lt lt maven javadoc plugin 2 10 3 aggregat
  • 模拟 div 覆盖另一个 div 时的颜色变化

    我有一个固定的 div 它可以滚动某些元素 当div位于某个div上方时 我不希望它具有特定的颜色和特定的图像 当它位于另一个 div 上时 我希望它改变颜色 基本现场演示 http jsfiddle net c2a4jg95 8 我很确定
  • VBA打开工作簿,退出代码

    我尝试使用打开 xlsm 类型的工作簿 Private Function readFiles ByVal lv path As String ByRef lx wrkShDes As Worksheet On Error GoTo Erro
  • Perl 6 有无限的 Int 吗?

    我有一个任务 我想找到距离目标最近的字符串 因此 编辑距离 而不是同时生成它们 我想我应该使用高水位线技术 我猜是低水位线 同时初始化最近的编辑距离Inf这样任何编辑距离都会更近 use Text Levenshtein my string
  • ASP.Net Core Blazor:如何根据标头值加载不同的 _Host.cshtml 文件

    我想加载一个 Host cshtml基于请求中的标头的 ASP NET Core Blazor 项目 服务器端 Blazor 中的文件 例如 客户端连接到example com并被重定向到 Host cshtml特定于租户 A 的文件 另一
  • 在Python中关闭窗口并打开文本编辑器时保持脚本运行[重复]

    这个问题在这里已经有答案了 众所周知 愚人节即将到来 所以我想我应该写一个很好的脚本来恶作剧某人 这是众所周知且令人恐惧的 MEMZ 病毒的无害版本 我目前拥有的脚本 import webbrowser import time def pr
  • AngularJS 幻灯片过渡在 Safari ios 9 上损坏

    我有以下 css 类 用于在路线更改开始时左右滑动我的 ng view 这些在大多数浏览器 手机等上都工作得很好 直到现在 在ios 9下动画不太工作 它不再从左到右滑动 但视图在滑动时从小尺寸增长到全尺寸 效果相当不愉快 欢迎任何帮助 C
  • 如何创建按月份分组的年度条形图

    我在尝试使用 和 创建条形图时遇到了困难DataFrame按年份和月份分组 使用以下代码 我尝试在创建的图像中绘制数据 而不是返回第二个图像 我还尝试将图例移至右侧并将其值更改为相应的月份 我开始感受到通过groupby命令 虽然没有得到我
  • 如何抑制“缺乏具体实施”的警告?

    我该怎么做才能防止编译器抛出以下警告 缺少 setter MyClass field 和 getter 的具体实现 我的班级 field 在下面的代码上 import package mock mock dart class MyClass
  • Django IntegrityError - NOT NULL 约束失败

    我遇到的错误表明我正在尝试提交一个必填字段为空的表单 Error django db utils IntegrityError NOT NULL constraint failed bug report bug project id 我的代
  • C# 枚举 - 如何比较值

    我如何比较这个枚举的值 public enum AccountType Retailer 1 Customer 2 Manager 3 Employee 4 我试图在 MVC4 控制器中比较此枚举的值 如下所示 if userProfile
  • 如何避免多次 if null 检查[重复]

    这个问题在这里已经有答案了 可能的重复 Deep Null 检查 有更好的方法吗 https stackoverflow com questions 2080647 deep null checking is there a better
  • laravel Rest api 中的身份验证和用户管理

    我正在为移动应用程序编写一个 REST API 我不知道如何在我的应用程序中对用户和管理员进行身份验证 我有一张名为 users 并且有一个名为 的字段isAdmin 那是0 or 1 现在当管理员发送帖子时 用户可以看到帖子 您如何推荐a
  • 在android中创建从上到下到状态栏和工具栏的线性渐变

    I want to add a Linear gradient color to Status Bar and Toolbar I am able to add gradient to status bar and toolbar with
  • 通过使用不同条件运行相同查询创建多个平面文件

    我的数据库表中有 1000 万个客户号码 我想每次为前 100 万客户运行查询并将该数据保存在 csv 文件中 我如何使用 SSIS 包做到这一点 前任 第一次 选择名字 姓氏 客户 ID 来自客户 其中客户 ID 介于 1 到 1 000
  • Spring 3 简单的无扩展 url 映射与基于注释的映射 - 不可能吗?

    我正在使用 Spring 3 并尝试使用注释来定义控制器映射来设置一个简单的 Web 应用程序 如果不使用 form 或 do 填充所有网址 这似乎非常困难 由于网站的部分内容需要密码保护 因此这些网址均位于 secure 下 有一个