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,所以一定要檢查自己的代碼。
這個問題竟然困擾了我一天,實在是太蠢了,長一下記性,下次不能再犯了。