我做了一个小的 spring mvc 应用程序。在我的 Controller 中,我有 2 个方法返回 web-inf 文件夹中 jsp 文件的名称。 现在应用程序可以完美运行,但如果我尝试添加 url 路径,它就不起作用。
我的意思是这样的:
@Controller
@RequestMapping("/start") //if add this it doesn't work
public class SalesController {
@RequestMapping(value = "/greeting")
public String sayGreeting(Model model) {
model.addAttribute("greetingMsg", "Hello Spring");
return "welcome";
}
@RequestMapping(value = "/hello")
public String getHello(Model model) {
model.addAttribute("greeting", "Yo man");
return "hello";
}
}
这是我的 servletConfig 配置
<mvc:annotation-driven />
<context:component-scan base-package="com.myCompany" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
如果我给出路径“myApplicationName”/start/greeting,则会出现错误。但如果我删除启动它就可以了。
这里似乎有什么问题?
谢谢
更新:
下面是我的 web.xml 配置
<servlet>
<servlet-name>SpringServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/servletConfig.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SpringServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
最佳答案
在您的网址模式中添加 /.html*:
<servlet>
<servlet-name>SpringServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/servletConfig.xml</param-value>
</init-param> </servlet>
<servlet-mapping>
<servlet-name>SpringServlet</servlet-name>
<url-pattern>/*.html</url-pattern> </servlet-mapping>
关于java - Spring MVC 请求映射类级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33689317/