SSM項目整合,可以訪問controller,但是頁面空白,沒有返回到相應的頁面

SSM項目整合,可以訪問controller,但是頁面空白,沒有返回到相應的頁面

這個問題困擾了我一天,但是最後發現是一個很蠢的錯誤,謹以此文給自己一個提醒。

以下是我的controller

@Controller
public class TestController {

	@Autowired
	private TestService testService;
	
	@RequestMapping("/user/find.action")
	private String find(User user,Model model){
		List<User> userList=testService.findUser(user);
		model.addAttribute("userList",userList);
		return "/test/test.jsp";
	}

這是測試的頁面,對應的service和Dao層都沒啥錯誤,配置文件也沒啥錯誤,運行也沒有報錯,打斷點發現方法能找到,但是進不去方法,這讓我很無奈了。上百度找了很久,跟這個相關的文章實在是太少了,好不容易找到一篇文章給我一點啓發,剛開始按照博主的方法,添加攔截排除


<mvc:exclude-mapping path="/user/*"/>

但是在我的springMVC的配置文件中添加這一句是錯誤的,還給我帶來了很多其他的錯誤,於是放棄了。

後來思考良久之後,想到既然是攔截的問題,那我爲什麼不乾脆註釋掉這一段代碼試試,事實證明我的想法是正確的,問題就出在攔截器裏面,我註釋掉這段代碼之後,所有控制器都放行,不會被攔截,我就成功的訪問到了我的test.jsp頁面,於是去檢查我的攔截器,在攔截器裏什麼都沒配置,三個空方法

public class LoginInterceptor implements HandlerInterceptor{

	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}

	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		// TODO Auto-generated method stub
		return false;
	}
	
}

可以看到我犯了一個很蠢的錯誤,我把返回設成了false,既然被攔截了,返回的又都是false,而且沒做任何處理,所以不管怎麼樣我都訪問不到我的test頁面。eclipse自動生成的默認是false,所以一定要檢查自己的代碼。

 

 

這個問題竟然困擾了我一天,實在是太蠢了,長一下記性,下次不能再犯了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章