spring-mvc 相关问题

基于模型 - 视图 - 控制器(MVC)模式构建Java Web应用程序的框架。它从底层视图技术中提升灵活和分离的代码。

HeadersTooLargeException - 响应标头

我在 Spring mvc 的项目中实现了文件下载,在下载文件时,它在 tomcat 7 服务器上出现以下错误: org.apache.coyote.http11.HeadersTooLargeException:一次尝试...

回答 2 投票 0

org.hibernate.query.SemanticException

我有这样的疑问: 列表 findAllByProcessedIsTrueAndNatalIsOrSolarIs (布尔处理、整数出生、整数太阳能); 但我有这个错误: 引起的:java.lang.

回答 1 投票 0

方法 public Abstract util.List 的查询验证失败

我是 Spring Data JPA 的新手,所以我在编写查询时遇到了麻烦。我想从 movieID 中获取在某部电影中扮演角色的所有演员。 尝试此操作时,我在尝试时遇到错误

回答 1 投票 0

Spring MVC:没有预设内容类型为“null”的 [class com.gcu.model.OrderList] 转换器

我的 Spring MVC 应用程序遇到问题,我尝试返回 OrderList 类型的对象作为 HTTP 响应,但收到以下警告消息: 警告 21264 --- ...

回答 1 投票 0

Spring Boot应用程序自动下载JSP文件而不显示内容,如何解决?

我正在从事 Spring Boot Web 应用程序项目。 当我运行 Spring Boot Web 应用程序时,它运行良好,但是在浏览器中,当我超出此 Web 应用程序内容时,我的 jsp 文件会自动下载 ins...

回答 1 投票 0

@DateTimeFormat 在发送响应时不转换日期

我有一个 Spring MVC 应用程序(无需启动)。我正在使用 Spring MVC 6。 我正在尝试学习 @ResponseBody 标签,并在控制器中创建了我的 bean 类的对象并将其发送到响应中...

回答 1 投票 0

Spring 实践第 6 章/ch05:为什么 design.html 在没有将 @ModelAttribute 添加到 taco 方法参数的情况下在这里工作?

视图(design.html): https://github.com/habuma/spring-in-action-6-samples/blob/main/ch05/taco-cloud/src/main/resources/templates/design.html ... 查看(design.html): https://github.com/habuma/spring-in-action-6-samples/blob/main/ch05/taco-cloud/src/main/resources/templates/design.html ... <form th:method="POST" th:object="${taco}" th:action="@{/design}" id="tacoForm"> <span class="validationError" th:if="${#fields.hasErrors('ingredients')}" th:errors="*{ingredients}">Ingredient Error</span> ... 控制器: https://github.com/habuma/spring-in-action-6-samples/blob/main/ch05/taco-cloud/src/main/java/tacos/web/DesignTacoController.java public class DesignTacoController { ... @ModelAttribute(name = "taco") public Taco taco() { return new Taco(); } @GetMapping public String showDesignForm() { return "design"; } ... @PostMapping public String processTaco( @Valid Taco taco, Errors errors, @ModelAttribute TacoOrder order) { log.info(" --- Saving taco"); if (errors.hasErrors()) { return "design"; } Taco saved = tacoRepo.save(taco); order.addTaco(saved); return "redirect:/orders/current"; } } 据我所知,由于方法之前有 Taco 注释,将创建一个名为 taco 的新 @ModelAttribute(name = "taco") 对象并将其添加到模型中。这很好,因为我们需要一个空的 Taco 对象来用于 GET /design 请求(showDesignForm)。但是,当我们提交表单时,会再次创建一个新的 taco 并将其添加到模型中,并且因为我们没有将 @ModelAttribute 添加到 processTaco 的 taco 参数(@Valid Taco taco),视图将获得新鲜的炸玉米饼未由提交的表单数据填充。因此,在这种情况下,视图不应该正确显示当前/更改的 taco 信息(即更改的字段或错误信息)。但我测试了一下,发现它有效。 我搜索了很多关于@ModelAttribute的内容,但找不到上述困惑的任何答案。 对于 PostMapping,Spring 框架会自动从提交的表单数据创建 taco 对象,对其进行验证,然后提供给 processTaco 方法。您是否实际调试并查看提供给 processTaco 方法的 taco 对象中是否没有值?

回答 1 投票 0

异常发送上下文初始化事件到类org.springframework.web.context.ContextLoaderListener的监听器实例

我正在尝试实现 Spring Security 登录,并且尝试过类似的操作: spring-security.xml: 我正在尝试实现 Spring Security 登录,并且我尝试过类似的操作: spring-security.xml: <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> <http auto-config="true" use-expressions="true"> <intercept-url pattern="/login" access="permitAll" /> <intercept-url pattern="/logout" access="permitAll" /> <intercept-url pattern="/accessdenied" access="permitAll" /> <intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> <form-login login-page="/login" default-target-url="/list" authentication-failure-url="/accessdenied" /> <logout logout-success-url="/logout" /> </http> <authentication-manager alias="authenticationManager"> <authentication-provider> <user-service> <user name="lokesh" password="password" authorities="ROLE_USER" /> </user-service> </authentication-provider> </authentication-manager> </beans:beans> web.xml: <servlet> <servlet-name>spring</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/spring-servlet.xml, /WEB-INF/spring-security.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- Spring Security --> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 我正在使用 spring 版本:3.1,我在上面的 xml 文件中收到错误。 错误: May 5, 2014 12:33:47 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/spring-security.xml]; nested exception is java.lang.NoClassDefFoundError: org/springframework/security/web/util/AntPathRequestMatcher at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:377) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:278) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.NoClassDefFoundError: org/springframework/security/web/util/AntPathRequestMatcher at org.springframework.security.config.http.MatcherType.<clinit>(MatcherType.java:22) at org.springframework.security.config.http.HttpConfigurationBuilder.<init>(HttpConfigurationBuilder.java:105) at org.springframework.security.config.http.HttpSecurityBeanDefinitionParser.createFilterChain(HttpSecurityBeanDefinitionParser.java:116) at org.springframework.security.config.http.HttpSecurityBeanDefinitionParser.parse(HttpSecurityBeanDefinitionParser.java:81) at org.springframework.security.config.SecurityNamespaceHandler.parse(SecurityNamespaceHandler.java:88) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1414) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1404) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) ... 28 more May 5, 2014 12:33:47 PM org.apache.catalina.core.StandardContext start SEVERE: Error listenerStart May 5, 2014 12:33:47 PM org.apache.catalina.core.StandardContext start SEVERE: Context [/HRportal] startup failed due to previous errors May 5, 2014 12:33:47 PM org.apache.catalina.core.ApplicationContext log INFO: Closing Spring root WebApplicationContext May 5, 2014 12:33:47 PM org.apache.catalina.core.StandardContext listenerStop SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:172) at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1066) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1040) at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:988) at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:534) at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:142) at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3882) at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4516) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4380) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 谁能纠正我,我哪里错了? 您的类路径中缺少 spring-security-web-3.1.X.RELEASE.jar 如果您的项目中存在另外两个 ContextLoaderListener,就会发生这种情况。 例如:在我的例子中,使用 存在 2 ContextLoaderListener java配置 web.xml 因此,从您的项目中删除任何一个 ContextLoaderListener 并运行您的应用程序。 如果您确定没有弄乱罐子,请清理项目并执行mvn clean install。这应该可以解决问题。 这个答案很有用 1 如果您确定没有弄乱 jar,请清理项目并执行 mvn clean install。这应该可以解决问题。 我做了这件事,但如果我完成了 Maven 更新,它会再次引发

回答 4 投票 0

在 Spring-6 中创建一个 Multipartresolver bean

在spring5中我们可以创建一个像下面这样的bean。 在 spring5 中我们可以创建如下所示的 bean。 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize"> <value>1073741824</value> </property> </bean> 但是这个 CommonsMultipartResolver 在 spring-6 中被删除。 因此我们有 org.springframework.web.multipart.support.StandardServletMultipartResolver 用于分段文件上传。但是如何设置 maxUploadSize 属性,因为该属性在上面的类中不可用? 请遵循 JEE 文档 或检查 StandardServletMultipartResolver 文档。 您可以使用web.xml <multipart-config> <location>/tmp</location> <max-file-size>26214400</max-file-size> <max-request-size>31457280</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config> 或者javax servlet注释: @WebServlet("/uploadServlet") @MultipartConfig(location="/tmp", fileSizeThreshold=1024*1024, maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5) public class UploadServlet extends HttpServlet { // ... 或者 spring 注解配置: public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { // ... @Override protected void customizeRegistration(ServletRegistration.Dynamic registration) { // Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold registration.setMultipartConfig(new MultipartConfigElement("/tmp")); } }

回答 1 投票 0

最简单的 spring 安全配置破坏了我正在运行的 spring-boot 应用程序

我有一个可以工作的 Spring Boot 应用程序,并且可以进行单元测试。 如果我为 Spring Security 添加任何配置,则无法提供任何页面,它只是尝试提供静态内容,而控制器永远不会提供服务

回答 1 投票 0

我是否需要自定义 Oracle Dialect 以及自定义 DialectProvider 才能使用 Oracle 数据库制作 Spring Boot Java Web 应用程序?

我正在制作一个学校项目,它要求我们为 Oracle 数据库制作某种 Web 应用程序。我的团队选择了 MVC 风格的 Spring Boot Java 和 Maven,我负责后台...

回答 1 投票 0

在SpringBoot应用程序中设置WebSecurityConfig

我正在SpringBoot应用程序中设置WebSecurityConfig。 @配置 @EnableWebSecurity 公共类 WebSecurityConfig 扩展 WebSecurityConfigurerAdapter { .. } 但我有这个错误无法解决

回答 1 投票 0

为什么编辑Spring实体时提示“找不到表”?

我与Spring合作并得到了下面的实体 包be.simonwyns.webapplicatie.model; 导入 jakarta.persistence.*; @实体 公开课目标{ @ID @GenerateValue(策略 = GenerationType.

回答 1 投票 0

Springboot Service 类返回空引用

我创建了一个 Employee Service 实现类以及一个 Employee Service 接口,作为 Springboot 学习的一部分。我的数据库表中有数据,但我得到以下信息...

回答 1 投票 0

您还会将哪些其他库或工具添加到 Spring/Hibernate 堆栈中以改进快速应用程序开发?

我的工作团队维护着一个基于 Spring 和 Hibernate 编写的相当大的 Web 应用程序。我们即将开始对网站进行一些相当大规模的更改,我们着迷于快速的

回答 3 投票 0

Mongock 变更日志文件在本地系统中执行,但部署后不在服务器上执行

能够在本地成功执行 Mongock 变更日志文件,但当我将应用程序 jar 部署到服务器时,变更日志文件无法执行。我也没有收到任何错误。我能看到

回答 1 投票 0

Spring MVC 和 UTF-8:如何使用瑞典语特殊字符?

我尝试在我的数据库中找到带有特殊瑞典语字符“bäck”的单词, 我有一个jsp页面: <%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %> ... 我尝试在我的数据库中找到带有特殊瑞典语字符“bäck”的单词, 我有一个 jsp 页面: <%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %> ... <form name="mainform" action="/web/admin/users/"> <input id="keywords" type="text" name="keywords" size="30" value="${status.value}" tabindex="1" /> <button class="link" type="submit">Search</button> </form> 过滤器: public class RequestResponseCharacterEncodingFilter extends OncePerRequestFilter { private String encoding; private boolean forceEncoding; protected void doFilterInternal( HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { request.setCharacterEncoding(this.encoding); response.setCharacterEncoding(this.encoding); filterChain.doFilter(request, response); } } web.xml <web-app ...> ... <filter> <filter-name>encodingFilter</filter-name> <filter-class>test.testdomain.spring.RequestResponseCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ... </web-app> 当我开始找到“bäck”这个词时,它看起来像这样bäck。请求被编码为 UTF-8: 但就在我退出调试器过滤器中的 doFilterInternal 方法之前,我看到: 我做错了什么?为什么文本没有编码为 UTF-8? 编辑:这很奇怪,我刚刚尝试在 Chrome 和 Mozilla Firefox 中查询,效果很好,所以在我看来,我只在 Internet Explorer 中遇到这个问题 编辑:Internet Explorer 给我这个字符串:b%C3%A4ck,但 Mozilla Firefox 和 Chrome 给我这个字符串:b%E4ck。他们明显不同,为什么? 您的屏幕截图表明您的搜索关键字 bäck 作为 URL 的一部分作为 URL 参数发送。它还表明这项工作似乎正确地采用了 UTF-8 URL 编码。您在调试器中返回的字符串是典型的 UTF-8 编码字节的 ISO-Latin 解码:例如HTTPServletRequest 解析器使用 ISO-Latin 解析 UTF-8 编码的字符串。 因此,您的 ServletFilter 对解释它没有任何帮助: request.setCharacterEncoding(this.encoding); response.setCharacterEncoding(this.encoding); 因为正如 javadoc 所说:这些方法适用于 HTTP 请求的正文,而不是其 URL。 /** * Overrides the name of the character encoding used in the body of this * request. This method must be called prior to reading request parameters * or reading input using getReader(). Otherwise, it has no effect. * 查看 URL 参数解析是 Servlet 容器的职责,您应该查看的设置可能是容器级别的设置。 例如,在 Tomcat 上,如文档中所述: http://tomcat.apache.org/tomcat-7.0-doc/config/http.html : URIEncoding :指定在 %xx 解码 URL 后用于解码 URI 字节的字符编码。如果未指定,将使用 ISO-8859-1。 默认情况下,它使用 ISO-8859-1。您应该将其更改为 UTF-8,然后,您的请求参数将从 servlet 容器中正确解析,并传递给 HTTPServletRequest 对象。 编辑:当您看到浏览器行为不一致时,您可以检查 HTML 表单的一致性。请确保 您的 HTTP Content-Type 标头和定义字符集的 HTML“元”标记在声明字符集时都存在且一致。 (考虑到您的 servlet 过滤器,它们都应该是 UTF-8) 您实际上尊重响应正文中的字符集声明(您实际上从 JSP 中写入 UTF-8 字符串 - 或其他任何内容) 问题:如果服务部署在docker容器中,如何处理瑞典字符。 按照以下步骤处理瑞典字符: 请求映射中的端点使用以下属性 produces = {"application/json;charset=UTF-8", "application/json;charset=UTF-8"} 在 application.properties 中插入以下行 spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true 在容器中安装语言环境,添加以下行 运行 apt-get -y 安装语言环境 设置区域设置,您可以更改为 sv_SE 但以下操作也将起作用,因为它启用了 UTF-8 RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ locale-gen ENV LANG en_US.UTF-8 ENV 语言 en_US:en ENV LC_ALL en_US.UTF-8 在主类中添加语言环境: 导入java.util.Locale; Locale locale = new Locale.Builder().setLanguage("sv").setRegion("SE").build(); Locale.setDefault(区域设置)

回答 2 投票 0

在 Spring 应用程序中集成测试期间如何处理(或阻止)电子邮件的发送?

也许我没有使用正确的搜索关键字,但我在集成测试中找不到有关电子邮件主题的任何内容。 “邮件”这个词在测试文档中甚至没有出现过一次。 我...

回答 1 投票 0

RestController 上的 Java SpringBoot @PathVariable

我有以下@RestController: 包 io.github.paulmarcelinbejan.coandaairlines.reservationsystem.adapters.inbound.controller.rest; 导入java.util.List; 导入org.springframework.http。

回答 1 投票 0

403 迁移到 Spring Boot 3 后禁止使用基本身份验证的挂起控制器方法

我最近将 Spring Boot MVC Kotlin 项目迁移到 Spring Boot 3。基本身份验证用于 REST 控制器(通过 SecurityFilterChain 配置 - 也从 WebSecurityConfigurerAdap 迁移...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.