spring-mvc 相关问题

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

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

Spring Security BadCredentialsException

我正在遵循这个 Baeldung 教程,我看不到任何差异(除了预生成的登录页面模板),但在尝试使用硬

回答 4 投票 0

Spring 安全性允许任何端点重定向到 /login

下面是根据新的 Spring Security 6 / Spring boot 3 文档创建的 SecurityFilterChain bean。请告诉我这是预期的结果还是出现问题。 代码 : @配置...

回答 1 投票 0

Thymeleaf th:each - 如何禁用生成 div 标签

<div class="question" th:each="question : ${questions}"> <h2 id="question" class="description" th:text="${question.description}">Question goes here</h2> <div id="answer-buttons"> <button class="btn"><div class="answer" th:text="${question.possibleAnswers.get(0).content}" th:classappend="${question.correctAnswer == 1 ? 'correct-answer' : ''}">Answer 1</div></button> <button class="btn"><div class="answer" th:text="${question.possibleAnswers.get(1).content}" th:classappend="${question.correctAnswer == 2 ? 'correct-answer' : ''}">Answer 2</div></button> <button class="btn"><div class="answer" th:text="${question.possibleAnswers.get(2).content}" th:classappend="${question.correctAnswer == 3 ? 'correct-answer' : ''}">Answer 3</div></button> <button class="btn"><div class="answer" th:text="${question.possibleAnswers.get(3).content}" th:classappend="${question.correctAnswer == 4 ? 'correct-answer' : ''}">Answer 4</div></button> </div> <button id="next-btn">Next</button> </div> 如果我没猜错的话,上面代码中的th:each会为问题中的每个问题进行新的划分,类似于: <div class="quiz"> <div class="question"> <h2 id="question" class="description">Question</h2> <div id="answer-buttons"> <button class="btn"><div class="answer">Answer 1</div></button> <button class="btn"><div class="answer correct-answer">Answer 2</div></button> <button class="btn"><div class="answer">Answer 3</div></button> <button class="btn"><div class="answer">Answer 4</div></button> </div> <button id="next-btn">Next</button> </div> </div> 问题来自数据库,我有 js 文件来处理它们,但为了做到这一点,我不想创建额外的 html 正文。 所以我的问题是,Thymeleaf 是否有一些针对上述问题的禁用机制,或者我是否需要更改代码结构? 对于任何用途,以下是我的脚本处理数据的方式: const questionsFromDb = document.querySelectorAll('.question'); // Template const questions = [ { question: "Which is the largest animal on the planet?", answers: [ {text: "Shark", correct: false}, {text: "Blue whale", correct: true}, {text: "Elephant", correct: false}, {text: "Giraffe", correct: false} ] }, { question: "Which is the smallest country on the planet?", answers: [ {text: "Vatican City", correct: true}, {text: "Bhutan", correct: false}, {text: "Nepal", correct: false}, {text: "Shri Lanka", correct: false} ] }, { question: "Which is the largest desert on the planet?", answers: [ {text: "Kalahari", correct: false}, {text: "Gobi", correct: false}, {text: "Sahara", correct: false}, {text: "Antarctica", correct: true} ] }, { question: "Which is the smallest continent on the planet?", answers: [ {text: "Asia", correct: false}, {text: "Australia", correct: true}, {text: "Arctic", correct: false}, {text: "Africa", correct: false} ] } ]; // Parsing Data questionsFromDb.forEach(questionFromDb => { const questionDescription = questionFromDb.querySelector('.description').innerText; const answerElements = questionFromDb.querySelectorAll('.answer'); const answers = []; answerElements.forEach((answerElement, index) => { const answerText = answerElement.innerText; const isCorrect = answerElement.classList.contains('correct-answer'); answers.push({ text: answerText, correct: isCorrect }); }); questions.push({ question: questionDescription, answers: answers }); }); // ... Non-relative code below 添加新的 div 是一种有效的方法,你可以有额外的没有样式的 div,但是如果你想删除标签,你可以使用 th:remove="tag" 或 th:inline 机制,但这不是样式测试的好方法,尊重表达式语言方法,添加 html id 也不是正确的方法,您可以向 id 添加其他数据,例如:th:id="${'question_'+ status.id}" . 而且你的模板似乎是json! 如果你问我,我认为最好的方法是不要在这样的列表 ui 中使用 thymleaf,你可以使用 js 数据表,例如 tabulator 休息并玩 js 来代替

回答 1 投票 0

为什么 Jackson 需要默认构造函数?

我正在为我的项目使用 Java Spring Boot,并且我有以下控制器: @AllArgsConstructor @RestController @RequestMapping("/api/subject") 公共类SubjectController { 公关...

回答 1 投票 0

在tomcat 9中部署war时出现错误

这是来自 tomcat 日志文件夹的详细日志上下文 2024 年 3 月 30 日 10:26:42.230 严重 [main] org.apache.catalina.core.StandardContext.filterStart 异常启动过滤器 [authenticationTokenFilterBe...

回答 1 投票 0

Java Spring 中控制器的 Jackson 库

我正在为我的项目使用 Java Spring Boot,并且我有以下控制器: @AllArgsConstructor @RestController @RequestMapping("/api/subject") 公共类SubjectController { 公关...

回答 1 投票 0

'java.lang.IllegalStateException:需要 ServletContext 才能访问 javax.websocket.server.ServerContainer 实例'发生错误

在spring mvc项目中运行junit测试时出现此错误。 引起的原因:org.springframework.beans.factory.BeanCreationException:创建名称为“createWebSocketContainer”的 bean 时出错

回答 1 投票 0

如何在 Spring MVC 中启用 CORS 进行错误响应?

我正在开发一个应用程序,我使用 Spring MVC 作为后端,使用 Angular5 作为前端。我一直坚持 Auth2 安全层的实现,包括跨源资源共享......

回答 3 投票 0

不接受 Spring MVC ResponseEntity<Resource> 输入流资源?

我正在尝试使用 ResponseEntity 作为控制器方法响应类型,通过 Spring MVC 发送 jpg 图像。 如果资源是 FileSystemResource,它工作正常,但是当我尝试...

回答 2 投票 0

我使用 @ExtendsWith(MockitoExtension.class) 和 @SpringBootTest 任何人都可以用示例来澄清我

我是Spring boot的初学者,到目前为止我已经完成了以MYSQL作为数据库的REST操作(GET,POST,PUT,DELETE),我想为Controller类和Service类编写单元测试用例......

回答 1 投票 0

是否可以在Spring MVC REST端点中验证@RequestParam?

在 Jersey 2 中可以这样做: @得到 @PATH("用户/{电子邮件}") 公共 IDto getUser(@NotNull @Email @PathParam("email") String validEmail) { 返回 userManagementService.findUserByEmail(vali...

回答 5 投票 0

maven clean install 和 mvn spring-boot:run 在 POST 请求上给我 401(未经授权)错误

当我使用“mvn clean package”和“mvn spring-boot:run”运行我的java spring boot项目时,我收到 POST http://localhost:8080/api/v1/register 401(未经授权)错误。当我

回答 1 投票 0

Spring Boot 请求正文验证不起作用

任何人都可以告诉我这段代码中缺少什么吗? Spring Boot 3.2.3 和此 dep 已就位: org.springframework.boot 春天...

回答 1 投票 0

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