首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用JSP中的模型值

问不使用JSP中的模型值
EN

Stack Overflow用户
提问于 2016-03-20 04:58:27
回答 1查看 3.3K关注 0票数 3

我正在开发一个Spring应用程序。我的问题是,当视图出现时,它不会解析来自模型的值。

application.properties

代码语言:javascript
复制
spring.application.name=test-mvc
server.context-path=/test-mvc

Config

代码语言:javascript
复制
@Configuration
@EnableWebMvc
public class ApplicationConfigurerAdapter extends WebMvcConfigurerAdapter{

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/pages/");
        resolver.setSuffix(".jsp");

        return resolver;
    }
}

应用程序

代码语言:javascript
复制
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

控制器

代码语言:javascript
复制
@Controller
@RequestMapping("/view")
public class TestController {

    @RequestMapping("/greeting")
    public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, ModelMap model) {
        model.addAttribute("name", name);

        return "greeting";
    }
}

greeting.jsp

代码语言:javascript
复制
<html>
 <head><title>Hello world Example</title></head>
 <body>
     <h1>Hello ${name}, How are you?</h1>
 </body>
</html> 

来自http://localhost:8080/test-mvc/view/greeting?name=Mikey的输出

你好${name},你好吗?

我还尝试返回一个ModelAndView。我不知道为什么它不把"Mikey“放在${name}的位置。

更新

每当我向JSP页面添加taglib或任何内容时,它都会显示页面源。它不会渲染页面。下面是我的pom.xml

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
</parent>

<properties>
    <hibernate.version>5.0.5.Final</hibernate.version>
    <postgres.version>9.4.1208</postgres.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j</artifactId>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
    </dependency>

    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.taglibs</groupId>
        <artifactId>taglibs-standard-impl</artifactId>
        <version>1.2.5</version>
    </dependency>
</dependencies>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-20 15:22:02

在pom.xml中添加下面的依赖项

代码语言:javascript
复制
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

为了避免javax.servlet.ServletException: java.lang.NoSuchMethodError: org.apache.el.lang.ELSupport.coerceToType,您可能必须在下面添加依赖项。如果您不将其添加为scope=required,那么tomcat-embed el-8.0.32.jar将被放置在您的Tomcat 8.0\webapps\AppName\WEB-INF\lib文件夹中,并将导致上述错误。如果您通过IDE或mvn Spring-boot:run命令运行应用程序,则不需要在下面添加依赖项。

代码语言:javascript
复制
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-el</artifactId>
        <scope>provided</scope>
    </dependency> 

然后访问- http://localhost:8080/AppName/view/greeting?name=Mikey

检查这个回购的完整源代码。

更新:问题由于“Tomcat -embed el”依赖关系,JSP示例的tomcat war部署无法工作。已在弹簧启动- 1.4.0.M2中修复

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36110386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档