Idea界面跳转404问题

是林啊 2019-07-15 11:01:33
最近在尝试使用idea,但是连最基础的两个页面相互跳转都出错,在网上摸索了半天没得头绪,所以来问下各位大佬具体原因和解决办法。


上面就是界面,我单独的页面能打开,但是点击登录后就会进行报错404


下面放下项目结构

控制层


控制台输出信息

15-Jul-2019 10:52:39.616 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory E:\apache-tomcat-8.0.26\webapps\manager
15-Jul-2019 10:52:39.656 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory E:\apache-tomcat-8.0.26\webapps\manager has finished in 39 ms
10:56:04.677 [http-apr-8080-exec-8] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
10:56:04.677 [http-apr-8080-exec-8] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@52b4d906] was not registered for synchronization because synchronization is not active
10:56:04.678 [http-apr-8080-exec-8] DEBUG org.mybatis.spring.transaction.SpringManagedTransaction - JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@584cb276 [wrapping: com.mysql.jdbc.JDBC4Connection@3afef0a7]] will not be managed by Spring
10:56:04.678 [http-apr-8080-exec-8] DEBUG com.liulin.ce.dao.UserInfoDao.selectUserByLoginName - ==> Preparing: SELECT * FROM USERINFO WHERE LOGINNAME=?
10:56:04.678 [http-apr-8080-exec-8] DEBUG com.liulin.ce.dao.UserInfoDao.selectUserByLoginName - ==> Parameters: (String)
10:56:04.679 [http-apr-8080-exec-8] DEBUG com.liulin.ce.dao.UserInfoDao.selectUserByLoginName - <== Total: 0
10:56:04.680 [http-apr-8080-exec-8] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@52b4d906]


login页面
...全文
3575 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小旺仔呀 2020-05-31
  • 打赏
  • 举报
回复
请问您解决了吗 遇到一模一样的问题
是林啊 2019-07-16
  • 打赏
  • 举报
回复 2
引用 6 楼 freekaiQaQ 的回复:
检查下配置文件中视图解析器配置的 路径 prefix 的值
好了我解决了,是路径问题,视图解析器里面的路径,路径要配置成完全的路径。 错误配置:
<!-- 配置视图解析器 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
正确配置

<!-- 配置视图解析器 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/src/main/webapp/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
其中prefix中的路径要写成全路径,没有写全的话就不能进行跳转.
Waiting Alone 2019-07-15
  • 打赏
  • 举报
回复
你的basePath 路径没有获取到。是空值
是林啊 2019-07-15
  • 打赏
  • 举报
回复
引用 1 楼 Waiting Alone 的回复:
路径出问题了
可以稍微具体点吗,是哪个地方错了。。。
Waiting Alone 2019-07-15
  • 打赏
  • 举报
回复
路径出问题了
是林啊 2019-07-15
  • 打赏
  • 举报
回复
引用 12 楼 Waiting Alone 的回复:
[quote=引用 4 楼 al_student 的回复:] [quote=引用 3 楼 Waiting Alone 的回复:] 你的basePath 路径没有获取到。是空值
大佬,为何会是空值,我不是有获取工程路径吗


/*获取工程路径*/
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
[/quote] 你加了这个肯定是没有获取到的,不信的话,你吧这个basePath 加到HTML 元素中去,你这个值肯定没有[/quote] 没获取到的话请问怎么获取。。。搞了一天了还是不知道在哪里解决
是林啊 2019-07-15
  • 打赏
  • 举报
回复
引用 11 楼 freekaiQaQ 的回复:
[quote=引用 8 楼 al_student 的回复:] [quote=引用 6 楼 freekaiQaQ 的回复:] 检查下配置文件中视图解析器配置的 路径 prefix 的值



<!-- 配置视图解析器 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>


这个是视图解析器,配置这样应该没问题吧。。。[/quote] 方法return "/login" ; 中 / 去掉。[/quote] 我去掉了还是不行。。

@RequestMapping("/login")
    public String login(UserInfo userInfo, Model model){
        String msg="";
        //根据登入账号判断该用户是否存在
        UserInfo user = userInfoService.selectUserByLoginName(userInfo.getLoginName());
        if(user==null){
            msg="该用户不存在!";
        }else{
            if(user.getPassword().equals(userInfo.getPassword())){
                //验证成功进入主界面
                model.addAttribute("userInfo",user);
                return "/main";
            }else{
                msg="密码错误!";
            }
        }
        model.addAttribute("msg",msg);
        return "login";
    }
最后返回这个login这里还是不行。。
Waiting Alone 2019-07-15
  • 打赏
  • 举报
回复
引用 4 楼 al_student 的回复:
[quote=引用 3 楼 Waiting Alone 的回复:] 你的basePath 路径没有获取到。是空值
大佬,为何会是空值,我不是有获取工程路径吗


/*获取工程路径*/
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
[/quote] 你加了这个肯定是没有获取到的,不信的话,你吧这个basePath 加到HTML 元素中去,你这个值肯定没有
freekaiQaQ 2019-07-15
  • 打赏
  • 举报
回复
引用 8 楼 al_student 的回复:
[quote=引用 6 楼 freekaiQaQ 的回复:] 检查下配置文件中视图解析器配置的 路径 prefix 的值



<!-- 配置视图解析器 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>


这个是视图解析器,配置这样应该没问题吧。。。[/quote] 方法return "/login" ; 中 / 去掉。
KK~ 2019-07-15
  • 打赏
  • 举报
回复
引用 7 楼 al_student 的回复:
[quote=引用 5 楼 KK~ 的回复:] 首先那几家要确定你点击之后有没有进入后台,打个断点看一下。 如果进了之后,把controller里的返回值改成/views/login.jsp
没有进入到后台。我打了断点没用到[/quote] 配置文件里的东西有好几处,从你贴出来的代码来看,很难判断哪里有问题,只能靠猜的。 https://blog.csdn.net/github_39538842/article/details/80419338 你看一下这篇文章吧,是我很久之前写的,手动搭建ssm+maven架构,资源里也有对应代码可以下载
凤凰山球王 2019-07-15
  • 打赏
  • 举报
回复
厉害了厉害了
是林啊 2019-07-15
  • 打赏
  • 举报
回复
引用 6 楼 freekaiQaQ 的回复:
检查下配置文件中视图解析器配置的 路径 prefix 的值



<!-- 配置视图解析器 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>


这个是视图解析器,配置这样应该没问题吧。。。
是林啊 2019-07-15
  • 打赏
  • 举报
回复
引用 5 楼 KK~ 的回复:
首先那几家要确定你点击之后有没有进入后台,打个断点看一下。 如果进了之后,把controller里的返回值改成/views/login.jsp
没有进入到后台。我打了断点没用到
freekaiQaQ 2019-07-15
  • 打赏
  • 举报
回复
检查下配置文件中视图解析器配置的 路径 prefix 的值
KK~ 2019-07-15
  • 打赏
  • 举报
回复
首先那几家要确定你点击之后有没有进入后台,打个断点看一下。 如果进了之后,把controller里的返回值改成/views/login.jsp
是林啊 2019-07-15
  • 打赏
  • 举报
回复
引用 3 楼 Waiting Alone 的回复:
你的basePath 路径没有获取到。是空值
大佬,为何会是空值,我不是有获取工程路径吗


/*获取工程路径*/
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

81,120

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧