定义默认的Portlet Action方法

时间:2013-12-16 05:28:15

标签: java spring portlet spring-portlet-mvc

我对Spring MVC Portlet Controller有一些疑问。

我想定义一个控制器,它将首次绘制portlet,来自portlet的任何后续操作都将触发相应的操作方法

@Controller("searchController")
@RequestMapping("VIEW")
public class SearchController {

    @RenderMapping
    public String showSearch(RenderRequest request, Locale locale, Model model) {
        logger.info("Loading the Search Bar");
        return "search";
    }


     @ActionMapping("")  //default action that should be executed for first time
    public void fetchSearchDetails(ActionRequest request, ActionResponse response, SessionStatus sessionStatus) {
        logger.info("Searching the Refinement"); 
    }

    @ActionMapping("searchAction")
    public void searchProduct(@Valid @ModelAttribute(value = "product") Product product, BindingResult bindingResult,
            ActionRequest request, ActionResponse response, SessionStatus sessionStatus) {
        //execute if actionURL is searchAction
    }

}

如果首次加载portlet或没有操作,我如何声明/调用默认的Action方法。

2 个答案:

答案 0 :(得分:1)

尝试放@ActionMapping而不是@ActionMapping("").

答案 1 :(得分:0)

第一次显示portlet时,只执行渲染阶段,而不是动作阶段。所以我猜你应该在渲染阶段处理你的默认行为,并删除你的默认动作方法(fetchSearchDetails)。