SpringGUIDE(原创):Spring 中用JSP做View引擎(如何用Spring开发JSP?)(Spring+JSP)

26 篇文章 0 订阅
15 篇文章 0 订阅

我的上一篇文章翻译了这个JSP limitation,其实就是一定要注意,要用war包来创建你这个JSP项目,不要用Jar包,用了Jar包死活JSP也找不到,好像是打包成jar之后,这个JSP文件就根本没有打包到这个jar里面,另外打包成这个war的工程文件,里面是有一些对JSP的支持的。下文详细说。记得用war包,不用jar包。

步骤如下:

一、https://start.spring.io/ 去这个网站

创建一个项目,在artifact处改为:jspwardemo 选war ,选war 选war  3times to say important things.依赖选择SpringWeb

点击Generate下载下来这个zip包,解压缩到硬盘上。

用IDE SpringToolSuite4.exe 打开这个项目

然后开始写点代码什么的。最后的目录结构如下图

二、创建目录结构和JSP文件

你会发现在main目录下有个webapp目录,这个目录如果你创建项目的时候选择jar包是没有这个目录的。这也是为什么网上有人说必须是webapp才行。这个目录是默认war包的这种Spring给你规定好了的,有了就行。在webapp目录下创建WEB-INF目录,再在WEB-INF目录下创建jsp目录,然后创建hello.jsp.

hello.jsp 内容很简单,有个文本就可以了。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
THis is JSP Create By Mr Spring!
</body>
</html>

三、修改application.properties文件内容,该文件位于:

更改后内容如下:

########################################################
###JSP
########################################################
# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp
# 自定义属性,可以在Controller中读取
application.hello=Hello Angel From application

server.port=9090

 这个最后一句改端口的可以根据你的情况改为8080,8088 ,9099 都好像差不多可以,其他的都是不能动。就是对前缀和后缀做了龟腚贝。

四、添加一个类文件:JSPController.java  文件在:

内容为:

package com.example.jspwardemo;

import java.text.DateFormat;
import java.util.Date;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class JSPController {
    private String hello;

    @RequestMapping("/hello")
    public String helloJsp(){
        System.out.println("HelloController.helloJsp().hello=hello");
       // map.put("hello", hello);
        return "hello";
    }   
}
就是加了个控制器注解,访问/hello的都去运行helloJsp()方法,该方法返回的视图名称为hello,其实最后浏览器中用的就是hello.jsp。

基本上就可以了。

这个地方用war的会多出来一个类文件(如果用jar构建,就没有这个类文件):

package com.example.jspwardemo;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(JspwardemoApplication.class);
    }

}

这个是Spring给我们写好的,用来做JSP Servlet初始化的,这个就是用war和jar的最重要的区别了。

都好了,在IDE中 Run AS  SB App 

然后浏览器中 输入网址:localhost:9090/hello

你看到了jsp文件中的内容。

你要是不像我这么干,我也不知道了怎么干,就这个东西我搞了一天,就是因为没有用war的形式创建项目,jsp死活找不到。

按照我的这个你也可以,Do it Now,Bye!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值