首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Framework JSP表单post

Spring Framework JSP表单post
EN

Stack Overflow用户
提问于 2016-09-21 23:21:42
回答 1查看 104关注 0票数 0

我正在尝试在使用GlassFish Server4.1.1的NetBeans 8.1中使用Maven和Spring框架发布我的第一个JSP。

当我运行应用程序时,我的主页可以正常打开,这是我的index.jsp,url是localhost:8080/mavenproject1。

当我在表单I上单击submit按钮时,url是localhost:8080/selectSearch,错误为404not found。下面是我认为会涉及到这项工作的文件和项目结构。

pom.xml

代码语言:javascript
复制
 <?xml version="1.0" encoding="UTF-8"?>
 <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/xsd/maven-4.0.0.xsd">

 <modelVersion>4.0.0</modelVersion>

<groupId>com.mycompany</groupId>
<artifactId>mavenproject1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<name>mavenproject1</name>

<properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>4.0.1.RELEASE</spring.version>
    <jstl.version>1.2</jstl.version>
    <javax.servlet.version>3.0.1</javax.servlet.version>
</properties>

<dependencies>
    <dependency>
        <groupId>mssql</groupId>
        <artifactId>sqljdbc42</artifactId>
        <version>4.2.6420.100</version>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
    </dependency>

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>  
        <groupId>javax.servlet</groupId>  
        <artifactId>javax.servlet-api</artifactId>  
        <version>${javax.servlet.version}</version>  
        <scope>provided</scope> 
    </dependency> 

    <dependency>  
        <groupId>jstl</groupId>  
        <artifactId>jstl</artifactId>  
        <version>${jstl.version}</version>  
    </dependency>  

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.0.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>3.2.4</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <compilerArguments>
                    <endorseddirs>${endorsed.dir}</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${endorsed.dir}</outputDirectory>
                        <silent>true</silent>
                        <artifactItems>
                            <artifactItem>
                                <groupId>javax</groupId>
                                <artifactId>javaee-endorsed-api</artifactId>
                                <version>7.0</version>
                                <type>jar</type>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

WebInitializer.java

代码语言:javascript
复制
 package com.mycompany.config;

 import javax.servlet.ServletContext;  
 import javax.servlet.ServletException;  
 import javax.servlet.ServletRegistration.Dynamic;  

 import org.springframework.web.WebApplicationInitializer;  
 import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;  
 import org.springframework.web.servlet.DispatcherServlet;  

 public class WebInitializer implements WebApplicationInitializer {

     @Override
     public void onStartup(ServletContext servletContext) throws ServletException {        
         AnnotationConfigWebApplicationContext ctx = new      AnnotationConfigWebApplicationContext();  
         ctx.register(AppConfig.class);  
         ctx.setServletContext(servletContext);    
         Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));  
         servlet.addMapping("/");  
         servlet.setLoadOnStartup(1);
     }

}

AppConfig.java

代码语言:javascript
复制
 package com.mycompany.config;

 import org.springframework.context.annotation.Bean;  
 import org.springframework.context.annotation.ComponentScan;  
 import org.springframework.context.annotation.Configuration;  
 import org.springframework.web.servlet.config.annotation.EnableWebMvc;  
      import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 import org.springframework.web.servlet.view.JstlView;  
 import org.springframework.web.servlet.view.UrlBasedViewResolver;  


 @Configuration
 @ComponentScan("com.mycompany")
 @EnableWebMvc   
 public class AppConfig extends WebMvcConfigurerAdapter {  

     @Bean  
         public UrlBasedViewResolver setupViewResolver() {  
         UrlBasedViewResolver resolver = new UrlBasedViewResolver();  
         resolver.setPrefix("/WEB-INF/jsp/");  
         resolver.setSuffix(".jsp");  
         resolver.setViewClass(JstlView.class);  
         return resolver;  
     }

     @Override
     public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/*");
     }
 }

DefaultController.java

代码语言:javascript
复制
 package com.mycompany.controllers;


 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;



 @Controller
 public class DefaultController {
      public static void main(String[] args) throws Exception {

     }

   @RequestMapping(value = "/", method = RequestMethod.GET)
     public String index(ModelMap map) {

        return "index";
     }

   @RequestMapping(value = "/searchSelect", method = RequestMethod.POST)
     public String x(ModelMap map) {
        return "x";
     }

 }

jsp表单

代码语言:javascript
复制
 <form id="agreeForm" class="form" method="post" action="/searchSelect">
    <div class="row">
        <div class="col-lg-4">
            <div class="input-group">
                <label class="checkbox-inline"><input type="checkbox" id="agreeChk" name="agreeChk" required>Agree</label>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-lg-4">
            <div class="input-group">
                <button type="submit" class="btn btn-success">Continue</button>
            </div>
        </div>
    </div>
</form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 23:43:29

实际情况是它找不到x.jsp。如果您要注释该方法

代码语言:javascript
复制
public String x(ModelMap map)

像这样

代码语言:javascript
复制
public @ResponseBody String x(ModelMap map)

然后,它将简单地返回"x",但就像它现在所做的,它试图找到不存在的x.jsp

或者,您可以将其更改为返回selectSearch,因为您有一个与该名称相对应的视图,如下所示:

代码语言:javascript
复制
@RequestMapping(value = "/searchSelect", method = RequestMethod.POST)
 public String x(ModelMap map) {
    return "searchSelect";
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39620608

复制
相关文章

相似问题

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