_青丝绕指柔
2019-06-27 22:12
采纳率: 80%
浏览 489
已采纳

SSM框架controller层不跳转页面,controller的方法也没加responsebody,但是就是不跳转页面,怎么办啊?

    <servlet>
        <!-- 前端控制器 -->
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置文件路径 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-*.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

上面是servlet的配置

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

上面是springMVC的视图解析器

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userServiceImpl;

    /**
     *   登录功能
     */
    @RequestMapping("/isLogin")
    public String isLogin(User userData,HttpSession session) {
        User user = null;
        user = userServiceImpl.queryByUserName(userData.getUserName());
        if(user == null) {
            session.setAttribute("false", "用户名或密码错误");
            //return "redirect:/user/isLogin";
        }
        return "index";
    }
}

这是controller,这是我做的登录功能,我想在后端跳转,因为其它页面都在WEB-INF中

        var username = $("input[name='userName']").val();
        var password = $("input[name='passWord']").val();
                    $.ajax({
                        type:"POST",
                        url:"user/isLogin",
                        data:{"userName":username,"passWord":password}
                    });

这是jsp页面,我用的ajax传输数据
但是登录成功后不跳转页面 ,求各位大牛帮一下忙,在此谢过各位了

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 已采纳

    ajax 不能直接实现后台跳转页面。
    ajax主要是前后台交互用的。
    还有controller的方法加@responsebody
    $.ajax({
    type:"POST",
    url: //你的请求程序页面随便啦
    async:false,//同步:意思是当有返回值以后才会进行后面的js程序。
    data://请求需要发送的处理数据
    success:function(msg){
    if (msg) {//根据返回值进行跳转
    window.location.href = '你的跳转的目标地址';
    }
    }
    帮你改写下

     @RequestMapping("/isLogin")
     @responsebody
        public String isLogin(User userData,HttpSession session) {
            User user = null;
            user = userServiceImpl.queryByUserName(userData.getUserName());
            if(user == null) {
                session.setAttribute("false", "用户名或密码错误");
                //return "redirect:/user/isLogin";
            }
            return "success";
        }
    
            @RequestMapping("/Login")
            public  String Login()
            {
               return "index";
            }
    
            前台:
            $.ajax({
        type:"POST",
        url:'user/isLogin'  //你的请求程序页面随便啦
        async:false,//同步:意思是当有返回值以后才会进行后面的js程序。
        data:{"userName":username,"passWord":password}//请求需要发送的处理数据
        success:function(msg){
            if (msg) {//根据返回值进行跳转
                window.location.href = 'index.jsp';  //用 window.location.href = 'user/Login'; 也行
            }
    }
    
    
    打赏 评论

相关推荐 更多相似问题