0

我对 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 是第一次加载或没有操作,我如何声明/调用默认操作方法。

4

2 回答 2

1

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

于 2013-12-16T18:19:07.283 回答
0

第一次显示 portlet 时,只执行呈现阶段,而不执行操作阶段。所以我想你应该注意你在渲染阶段的默认行为,并删除你的默认操作方法(fetchSearchDetails)。

于 2013-12-16T20:55:41.577 回答