【发布时间】:2020-02-23 00:55:48
【问题描述】:
我尝试放置 2 个请求映射,因为我想指向 home/home,因为稍后我将拥有另一个同名的控制器,即 about/home。但我不确定为什么它不起作用。如果只有家,它正在工作,但家/家或关于/家不工作。班级级别不起作用。
这是控制器
package com.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.constant.server.HelperConstant;
@Controller
@RequestMapping("/home")
public class HomeController
{
@RequestMapping("/home")
public String doDisplayPage()
{
return HelperConstant.VIEW_HOME;
}
}
这个jsp
<html>
<body>
<form action="home/home">
<input type="text" name="t1"><br>
<input type="text" name = "t2"><br>
<input type ="submit">
</form>
</body>
</html>
我正在点击 HTTP 状态 404 -
编辑
附加配置文件
package com.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return new Class[] {SpringConfig.class};
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
return new String[] {"/"};
}
}
这是另一个配置文件
package com.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@ComponentScan({"com.controller"})
public class SpringConfig
{
@Bean
public InternalResourceViewResolver viewResolver()
{
InternalResourceViewResolver vr = new InternalResourceViewResolver();
//vr.setPrefix("/WEB-INF/");
vr.setSuffix(".jsp");
return vr;
}
}
还有一个额外的发现,我试图在 home/home.jsp 中寻找 jsp。我能知道为什么会这样吗?右边应该只看home.jsp。如果 remvoe 类级别注释,那么它工作正常,或者我在 webapp home 内创建一个文件夹它工作正常但再次单击提交后它会查找 home/home/home.jsp
我添加了一个方法="POST"
现在问题是重启tomact后
点击后像这样提交
如果再次点击提交显示错误 404
这是我的 web.xml,但我已经删除了它,因为我已经使用了 java 或配置
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>home.html</welcome-file>
<welcome-file>home.htm</welcome-file>
<welcome-file>home.jsp</welcome-file>
</welcome-file-list>
</web-app>
【问题讨论】:
-
“不工作”是什么意思?有什么错误吗?
-
HTTP 错误 404。声明它没有找到它正在寻找 home/home.jsp 的 jsp。但是为什么需要查看文件夹 home 并搜索 home.jsp
-
为什么不删除类级别的注释并同时更改
form action="home"? -
@SoftwareEngineer 这很奇怪。你试过
/home/homeaction属性吗? -
默认请求映射方法是'GET'方法。表单提交默认使用 'POST' 方法。您可以将方法设置为 POST
标签: java maven spring-mvc