web.xml
[code="java"]
spring3
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring3-servlet.xml
1
spring3
/
[/code]
springmvc配置文件
[code="java"]
<!-- DispatcherServlet接收到处理程序返回的视图名称,并解析为视图实现以供显示。 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" />
</bean>[/code]
index.jsp
[code="java"]<br> window.location.href = "good/index";<br> [/code]
class类
[code="java"]@Controller
@RequestMapping(value = "/login")
public class LoginController {
@RequestMapping(value = "/index")
public String index() {
return "login";
}
@RequestMapping(value = "/login")
public String login(String username, String password) {
return "homePage";
}
}[/code]
奇怪的代码是:action="login",按照我的理解应该是action="login/login",
如果是action="login",正确跳转,地址为:http://localhost:8080/autocode/login/login
如果是action="login/login",访问地址就是404,地址为:http://localhost:8080/autocode/login/login/login
[code="java"]
帮楼主弄清一下思路,当楼主请求首页是一定是http://localhost:8080/autocode其实就是在http://localhost:8080/autocode/login/index.jsp此时已经在/login下了,在首页中有请求/index 返回login 实际上就是转发到了http://localhost:8080/autocode/login/login.jsp.
Form标签中action请求为action 那么直接就请求到了http://localhost:8080/autocode/login/login OK,没问题如果是login/login 则就如楼主所说http://localhost:8080/autocode/login/login/login 如果想用login/login ,可以写成../login/login 这样应该就可以请求到了
这是个相对和绝对的问题