SpringMVC配置问题

qjf_Troy 发布于 2013/12/10 18:03
阅读 1K+
收藏 2

楼主最近刚开始接触springMVC之前一直没用过,就在网上看别人的例子,自己写了一个Demo想实现一个传值功能,就是在index.jsp上面输入name和password,然后通过action将值传到success.jsp,结果发现值能传到action中,但是从action到success.jsp的时候遇到了一下的问题。

每次在进入action的时候,楼主的代码是让成功后跳转到success.jsp页面,结果发现每次进来之后action都跳到了login.jsp页面(报出404错误,关键是没有login.jsp页面也没有指定login.jsp呀);

后来我就从新添加了一个login.jsp结果发现不在出现404了,但是跳过去之后没有值:

两次的值都能传到后台但是就是出不来,最让我不明白的是明明一开始配置的是success.jsp但是结果问什么会去到login.jsp呢,楼主刚接触SpringMVC还望哪位知道的能指点一二,先谢了!!!


先贴出我的代码如下,:

applicationContext.xml:


<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	
	xsi:schemaLocation="
	http://www.springframework.org/schema/mvc 
	http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
	http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd	
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context-3.0.xsd
	">
	<context:component-scan base-package="com.spring.controller"></context:component-scan> 	
	<bean 
	class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
	</bean>
	
	
</beans>
web.xml:



<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<display-name></display-name>
  
  <!-- 加载SPRING配置文件 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
  </context-param>
   
	  <!-- 配置Spring MVC DispatcherServlet -->
	    <servlet>
    	    <servlet-name>SpringMVC</servlet-name>
	        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	    </servlet>
	    <!-- 配置DispatcherServlet所需要拦截的 url -->
	    <servlet-mapping>
	        <servlet-name>SpringMVC</servlet-name>
	        <url-pattern>*.do</url-pattern>
	    </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

SpringMVC-servlet.xml:


<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	
	xsi:schemaLocation="
	http://www.springframework.org/schema/mvc 
	http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
	http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd	
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context-3.0.xsd
	">
	<context:component-scan base-package="com.spring.controller"></context:component-scan> 
	<bean 
	class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp">
	</bean>
	
	</beans>
接下来就是我的Controller类:



package com.spring.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.portlet.ModelAndView;

import com.spring.vo.User;

@Controller
public class LoginController {
	@RequestMapping("login")
	public ModelAndView loginCheck(String name,String password){
		ModelAndView view = new ModelAndView("login");
		
		System.out.println(name);
		System.out.println(password);
		view.addObject("name",name);
		view.addObject("password",password);
		return view;
	}
}

还有index.jsp和success.jsp:

index.jsp:

<body>
    <form action="login.do" method="post">
    	用户名:<input type="text" id="name" name="name"><br>
    	密     码:<input type="text" id="password" name="password"><br>
    	<input type="submit" value="submit">
    </form>
  </body>
</html>



success.jsp:

<body>
    ${name }<br>success.jsp
  </body>
</html>

一下是路径:

login.jsp是因为报了404才添加上去的,本来楼主的代码是没有login.jsp的,添加login.jsp是不得已呀!!!





加载中
0
double9
double9

错误原因:

import org.springframework.web.portlet.ModelAndView;

引入错了,应该是

import org.springframework.web.servlet.ModelAndView;

Portlet是Spring实现了JSR-168

0
double9
double9

ModelAndView view =newModelAndView("login");

错了,

应该是ModelAndView view =newModelAndView("success");

0
qjf_Troy
qjf_Troy

引用来自“never_say”的答案

ModelAndView view =newModelAndView("login");

错了,

应该是ModelAndView view =newModelAndView("success");

这个我知道,我要是配成success就是报404那个错误说是找不到login.jsp,后来我才添加的login.jsp,结果就是没有值得那个结果,关键是我想不通为什么我配的是success他会告诉我login.jsp找不到呢。
0
double9
double9
代码发过来,我看看
0
qjf_Troy
qjf_Troy

引用来自“never_say”的答案

代码发过来,我看看
你留一个邮箱我把代码给你发过去
0
NotFoundException
NotFoundException
   你若在login请求的方法中 未加入 ModelAndView view =newModelAndView("success"); spring 会自动的以@RequestMapping("login")  这个login作为返回的路径,若在方法中设置了ViewName就会以你设置的ViewName作为视图返回路径..
0
qjf_Troy
qjf_Troy

引用来自“爱在戏院前”的答案

   你若在login请求的方法中 未加入 ModelAndView view =newModelAndView("success"); spring 会自动的以@RequestMapping("login")  这个login作为返回的路径,若在方法中设置了ViewName就会以你设置的ViewName作为视图返回路径..
我要是是在new ModelAndView("success");设置为success就会报出login.jsp找不到的,但是我明明指向的是success.jsp呀,要是告诉我是success.jsp找不到我也能想通呀,关键是都配置好着呢呀。
NotFoundException
NotFoundException
清下缓存,重新部署下吧,,能访问这方法,在加视图配置中也没什么问题,尝试下,
0
QAllen
QAllen
把路径贴出来看看
0
qjf_Troy
qjf_Troy

引用来自“QAllen”的答案

把路径贴出来看看
路径已经放上去了,能帮下看看吗
返回顶部
顶部