我正在学习这本Spring Security指南,我已经读到了“创建一个不安全的web应用程序”一节。在该节末尾,声明如下:
此时,您可以直接使应用程序可执行并运行应用程序,而无需登录任何内容。
创建基本的简单web应用程序后,您可以为其添加安全性。
我试图按照“使应用程序可执行”中描述的步骤,创建应用程序的不安全版本。但是,这些视图没有得到正确处理
例如,如果我导航到http://localhost:8080/home
我得到了这个错误:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Jan 14 20:49:56 ART 2016
There was an unexpected error (type=Not Found, status=404).
No message available
我发现这个问题说我应该添加Thymeleaf的依赖项,另一个问题说我应该添加jasper和jslt,但它们都不起作用。然后,我发现了这个问题,说我应该把我的资源从src/main/resources/templates复制到src/main/resources/static
这样做会有一点变化:导航到<代码>http://localhost:8080/home.html呈现html,但不会处理视图,因此不会生成链接。
这是我的pom.xml
:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.juanmougan.samples</groupId>
<artifactId>spring-security</artifactId>
<!-- <packaging>jar</packaging> -->
<version>1.0-SNAPSHOT</version>
<name>spring-security</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
我的MVC配置类:
package com.github.juanmougan.samples;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* Configures Spring MVC and sets up view controllers to expose the templates.
*
* @author juanma
*
*/
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/home").setViewName("home");
registry.addViewController("/").setViewName("home");
registry.addViewController("/hello").setViewName("hello");
registry.addViewController("/login").setViewName("login");
}
}
和模板:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello world!</h1>
</body>
</html>
知道为什么模板没有被正确处理吗?
提前感谢
编辑:添加缺少的应用程序类。
package com.github.juanmougan.samples;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) throws Throwable {
SpringApplication.run(Application.class, args);
}
}
您不需要tomcat或javax。在pom中的servlet。xml将其取出并替换为
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这将引入嵌入式tomcat实例并为您自动配置MVC内容。
然后添加一个带注释的类,并设置一个请求映射
@Controller
public class IndexController {
@RequestMapping("/")
public String index() {
return "redirect:/home";
}
@RequestMapping("/home")
public String home() {
return "home";
}
@RequestMapping("/login")
public String login() {
return "login";
}
}
此外,作为一个#protip,当您遇到这样的白标签错误时,请转到eclipse(或STS,无论您使用什么),并查看控制台上的输出。它通常会转储一个完整的堆栈跟踪,其中包含更明确的错误消息,您可以确定问题所在。
您应该添加@Configuration注释,以便在加载配置时考虑MvcConfig类
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter{
...
}
在控制台上获取以下第一行: 35026:1978749]CoreText注意:客户端请求的名称“.SFNS-Regular”,它将获得Times-Roman而不是预期的字体。所有系统UI字体访问都应通过适当的API,如CTFontCreateUIFontForLanguage()或[NSFont systemFontOfSize:]。2021 06月09日00:00:46.808 java[350
我正在创建Spring boot web Application。出于模板目的,我使用了thymeleaf。我正在创建单独的html页面片段,并从这些片段创建两个不同的布局。但是,当我连接内容页面时,我没有得到正确的输出。 请检查代码片段/ 视图解析器 目录结构 应用布局。html 页脚片段footer.html 使用此方法创建不同的片段。 主方法类aka startup 欢迎html 现在,当我
我现在正在尝试学习自由Gdx。但是,我遇到了一个非常非常奇怪的问题。经过一番谷歌搜索,我开始认为我是唯一一个。基本上,每当我运行应用程序时,它都会开始在屏幕上快速闪烁随机图像 奇怪的是,当渲染方法什么都不做时,它也会这样做。我尝试从其中删除所有代码,但仍然得到相同的输出。 以下是呈现方法中发生的情况: 另一件奇怪的事情是Gdx.graphics。getDeltaTime()总是为我返回0。
我在android上使用libgdx时遇到字体问题。当我第一次打开应用程序时,它们工作得很好。但是,当我暂停应用程序然后继续时,字体呈现不正确。 下面是我如何创建字体的。 我的暂停/恢复方法中没有任何内容,不确定是否应该有什么内容。 这是它之前/之后的样子。
在我的主类下面,我试图从搅拌机渲染一个obj. obj文件,在将其重新格式化为(据称)为我的渲染工作后,它会出现错误。我如何解决这个问题? 主要类: OBJLoader类: 类别模型: 类面: 对不起,如果这是过度的,我知道错误来自第85行,但我似乎不知道如何修复它。 OBJ文件示例(精简):
对于使用Box2DDebugRenderer进行渲染Box2D调试,我有一些问题。我有两个正交摄像机,一个用于渲染世界(名为Cam),另一个用于HUD(healthBar,Armor,…)(名为hudCam)。 我试图渲染: > b2dr。渲染(世界,凸轮组合)- 我找不到一种方法来渲染Box2D完全像凸轮,看到所有机构的边缘。 如果有人理解我的问题,请帮助我! 谢谢。