Spring MVC:找不到portlet请求的处理程序:mode'view',阶段'Resource_PHASE'

时间:2016-03-22 10:09:28

标签: javascript jquery ajax jboss spring-portlet-mvc

像往常一样,我似乎已经做好了一切,但对于ghost我的ajax调用失败,错误“找不到portlet请求的处理程序:模式'视图',阶段'Resource_PHASE'”。

这里的处理程序url是“getAllFruit”,我从js ajax调用中获取并通过fruits-resource-url.js中的映射器文件将其映射到控制器中的实际URL“getAllFruitURL”。

还有其他类似的ajax方法,这里写的并且除了这个新方法之外一切正常。我想我错过了一些东西。请任何建议。拼写对于处理程序是正确的。

控制器类

@Controller
@RequestMapping("VIEW")
public class FruitCtrl 
{    
    @Autowired
    private FruitAdapter fruitAdapter;

    @ResourceMapping("getAllFruitURL")
    public void getAllFruits(ResourceResponse response) throws IOException 
    {       
        // code for call to service     
    }
}

进行ajax调用的Javascript类 fruit.js

$function()
{
    $.ajax({
        url:getAllFruit,
        success:function(data){
        }
    });
});

从中读取资源的资源文件

水果-资源url.js

var getAllFruit = replaceResourceID("getAllFruitURL");
//<portlet-resourceURL id="RESOURCE_ID_PLACEHOLDER"/>

1 个答案:

答案 0 :(得分:0)

我找到了鬼魂!

我一直在调试模式下运行我的应用程序。因此,为了避免在服务器中自动重建应用程序,我取消选择&#34;自动构建&#34;尽管在服务器上重新发布,但..class文件中不允许.class文件更新的选项。

获得的经验教训:无论应用程序是否构建,服务器都不会给出错误。它会坚持自己的工作并开始在服务器上发布应用程序。

因此,在使用资源渲染时,只需要处理两个基本步骤:

  1. ajax调用url属性中提到的处理程序url名称与实际url&#34; getAllFruitURL&#34;完全匹配。在控制器中(如果我们在我的情况下使用资源映射器js文件,那么在fruits-resource-url.js中使用映射器文件) 这已经很好了! 附:虽然常见的常识可能因各种原因而易变!:)