springmvc +jquery ajax 404

springmvc +jquery ajax,后台没问题,能正常进去并执行完成,返回到页面之后,
一直进error,不进success
js打印出来的东西:
XMLHttpRequest.status:404
XMLHttpRequest.readyState:4
textStatus:error

真心不知道是什么问题,跟了一段时间,发现mvc:annotation-driven/是这个配置
引起了,去掉了就没问题,加上了就有问题了,这下更晕了

哪位大神来指点一二

是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
后面,我们处理响应ajax请求时,就使用到了对json的支持。
后面,对action写JUnit单元测试时,要从spring IOC容器中取DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,来完成测试,取的时候要知道是这一句注册的这两个bean。

context:annotation-config declares support for general annotations such as @Required, @Autowired, @PostConstruct, and so on.

is actually rather pointless. It declares explicit support for annotation-driven MVC controllers (i.e.@RequestMapping, @Controller, etc), even though support for those is the default behaviour.

My advice is to always declare context:annotation-config, but don't bother with unless you want JSON support via Jackson.

当我们需要controller返回一个map的json对象时,可以设定,

同时设定mvc:message-converters 标签,设定字符集和json处理类

估计是你的返回值有问题吧,,看下返回的代码

AJAX 代码 贴一下

后台代码:
/**
* 加载更多跟帖
* @author Think-PC
*
*/
@RequestMapping(value = "/getMorePost", method = {GET, POST })
public @ResponseBody Map getMorePost(HttpServletRequest request,Map map,
@RequestParam(value = "shownum", defaultValue = "0") int shownum,
@RequestParam(value = "topicid", defaultValue = "0") int topicid) {
try {
//查询跟帖
shownum = (shownum+1);
map.put("shownum", shownum);
ArrayList postList = topicService.getPostByTopicId(topicid, shownum*10, 10);
if(postList!=null && postList.size()>0){
StringBuffer sbf = new StringBuffer();
for(int i=0;i Post post = postList.get(i);
sbf.append("

");
sbf.append("
");
sbf.append("

"+(shownum*10+(i+1))+"

");
sbf.append("
");
sbf.append("
");
sbf.append("

");
sbf.append(" 跟帖人:"+post.getUser().getUsername()+" | ");
sbf.append(" 跟帖时间:");
sbf.append("

");
sbf.append("

"+post.getPostcontent()+"

");
sbf.append("
");
sbf.append("
");
sbf.append("
");
}
map.put("success", sbf.toString());
}else{
map.put("success", "0");//没有更多跟帖
}
} catch (Exception e) {
map.put("error", "加载异常");
}
return map;
}

ajax代码:
//加载更多跟帖
function getMorePost(topicid){
    var shownum = $("#shownum").val();
    var data = {
        topicid:topicid, 
        shownum:shownum       
    }
    $.ajax({
        url:'<%=path %>/topic/getMorePost.html',
        data:data,
        type:'post',
        cache:false,
        dataType:'json',
        success:function(data){
            if(data.success == "0"){
                alert("没有更多跟帖");
            }else{
                $(".recommended-info").append(data.success);
                $("#shownum").val(data.shownum);
            }
        },
        error:function(XMLHttpRequest,textStatus){
            alert(XMLHttpRequest.status);
            alert(XMLHttpRequest.readyState);
            alert(textStatus);
        } 
    });
}

http://blog.csdn.net/je_ge/article/details/53725357

 <!-- 可以访问静态资源 -->
    <mvc:default-servlet-handler />

    <!-- 解析@RequestMapping -->
    <mvc:annotation-driven />
         <!-- 组件扫描 -->
    <context:component-scan base-package="com.jege.spring.mvc" />

mvc:annotation-driven/ 这个配置的意思是启动d spring 的注解。 如果不配置这个的话,你的 @ResponseBody ,@RequestMapping
等注解不生效的话,后台没有处理成json 返回,前台以为你返回的是页面,当然是找不到页面的