qq_35649402
你们让我起个名啊
采纳率42.3%
2017-07-18 06:18 阅读 6.7k

关于springmvc中@RequestMapping访问时404的问题

运行时没有报错;
部分配置文件

     <bean id="multipartResolver"  
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
        <!-- 默认编码 -->
        <property name="defaultEncoding" value="utf-8" />  
        <!-- 文件大小最大值 -->
        <property name="maxUploadSize" value="10485760000" />  
        <!-- 内存中的最大值 -->
        <property name="maxInMemorySize" value="40960" />  
    </bean> 

    <mvc:annotation-driven/>

    <context:annotation-config/>

     <mvc:resources location="/static/" mapping="/static/**"></mvc:resources>  

Controller部分代码

@RequestMapping("/sysuser")
public class SystemController extends BaseController {

    private final Logger log= LoggerFactory.getLogger(SystemController.class);

    @Resource
    private UserService userService;

    @RequestMapping(value = "/login",method = {RequestMethod.POST,RequestMethod.GET})
        public void login(User user,boolean rememberMe) throws IOException{
        result.setSuccess(false);
        //用户登录
        User userInfo = userService.getByProerties(new String[]{"loginAccount"}, new String[]{user.getName()},null);
        if(userInfo==null){
            result.setMessage("用户名错误");
            super.writeJSON(result);
            return;
        }
        if(!userInfo.getName().equals(new Sha256Hash(user.getPassword()).toHex())){
            result.setMessage("密码错误");
            super.writeJSON(result);
            return;
        }
        //存入session
        Subject subject = SecurityUtils.getSubject();
        //记得传入明文密码
        subject.login(new UsernamePasswordToken(userInfo.getName(), user.getPassword(), rememberMe));
        session.setAttribute(USER_SESSION, userInfo);
        result.setMessage("登录成功");
        result.setSuccess(true);
        super.writeJSON(result);
    }


前端js部分代码

        submitHandler:function(form){
            $.ajax({
                dataType : "json",
                url : "${contextPath }/sysuser/login",  
                type : "post", 
                data : $("#login_form").serialize(), 
                success : function(data) {
                    $.alert(data.message);
                    if(data.success){
                        window.location.href = 'page/main';
                    }
                },
                error : function (e){
                    var d = e.responseJSON;
                    if(d){
                        $.alert(d.message);
                    }
                }
            });
            return false; //阻止form提交
        }



<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*:/WEB-INF/applicationContext-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>
   <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>


发布项目点击登陆后会报
404

http://127.0.0.1:8080/.../sysuser/login

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • zsensei zsensei 2017-07-18 06:35

    你在你的控制器,就是 SystemController 上加上 @Controller 这个注解再试试

    点赞 2 评论 复制链接分享
  • qq_19865749 Liekkas_BX 2017-07-18 06:32

    $.ajax的url 不能加入项目目录,也不能加"/",你的contextPath 为多少呢?如果你的dispatcherServlet 映射路径为:/dispatcherSerlvet,
    则访问时路径应该为:dispatcherServlet/sysuser/login

    点赞 评论 复制链接分享
  • u010001477 Nothing_katu 2017-07-18 08:17
  • qq_27770257 jwnba24 2017-07-18 10:22

    /这个“/”只能匹配根目录吧,应该写成"/*"

    点赞 评论 复制链接分享

相关推荐