我编写了一个带有多个控制器的Spring MVC应用程序.
在JSP上,我有action
以下形式:
<form id="createTableForm" method="post" name="createTable" action="${pageContext.request.contextPath}/saveTable" >
Run Code Online (Sandbox Code Playgroud)
并且相同的操作映射到Controller中的方法:
@Controller
public class TableController implements TableConstants {
@RequestMapping(value="/saveTable")
public String saveTable(HttpServletRequest request,RedirectAttributes redirectAttributes) {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
在我的web.xml
:
<context-param>
<description>Context name of the Application</description>
<param-name>contextName</param-name>
<param-value>W****</param-value>
</context-param>
<context-param>
<description>Database used for</description>
<param-name>databaseName</param-name>
<param-value>w*****</param-value>
</context-param>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>FilterChainProxy</filter-name>
<filter-class>com.abc.w****.configuration.FilterChainProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterChainProxy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
<jsp-config>
<taglib>
<taglib-uri>http://displaytag.sf.net</taglib-uri>
<taglib-location>/WEB-INF/tld/displaytag.tld</taglib-location>
</taglib>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)
我是否需要在web.xml
文件或WebAppConfig
类中包含该特定Controller的URL映射?
我有WebAppConfig
@Configuration,@ ComponentScan和@EnableWebMVC注释.它有以下方法:
public UrlBasedViewResolver …
Run Code Online (Sandbox Code Playgroud) 以下方法返回输出:在原始int arg方法中
public class TestMethodOverloading {
private void show(int a){
System.out.println("in primitive int arg method");
}
private void show(float a){
System.out.println("in primitive float arg method");
}
public static void main(String[] args) {
TestMethodOverloading tmo = new TestMethodOverloading();
tmo.show(4);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,如果我将show方法的arguement类型从int更改为Integer,则输出返回为:in primitive float arg method
public class TestMethodOverloading {
private void show(Integer a){
System.out.println("in Integer arg method");
}
private void show(float a){
System.out.println("in primitive float arg method");
}
public static void main(String[] args) {
TestMethodOverloading tmo = new TestMethodOverloading();
tmo.show(4); …
Run Code Online (Sandbox Code Playgroud)