首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用struts Liferay获取搜索关键字

使用struts Liferay获取搜索关键字
EN

Stack Overflow用户
提问于 2013-10-04 19:41:15
回答 2查看 551关注 0票数 1

我想使用搜索的portlet获取搜索的关键字。我在url中看到:"struts_action=/search/seach“,然后我在strut-config.xml中查找并找到:

代码语言:javascript
复制
 action path="/search/search" forward="portlet.search.search" 

我正在尝试做一个struts,但是我对struts不是很了解,它不能工作。这是‘liferay hook.xml’的代码:

代码语言:javascript
复制
<portal-properties>portal.properties</portal-properties>
<struts-action>
    <struts-action-path>/search/search</struts-action-path>
    <struts-action-impl>com.segmentationProject.searchAction.struts.SearchAction</struts-action-impl>
</struts-action>

搜索:auth.public.path=/portal.properties/search

SearchAction.java:

代码语言:javascript
复制
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.liferay.portal.kernel.struts.BaseStrutsAction;

public class SearchAction extends BaseStrutsPortletAction {  
    @Override
    public void processAction(StrutsPortletAction originalStrutsPortletAction, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception {
        System.out.println("inside the process ");
        super.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
    }

    @Override
    public String render(StrutsPortletAction originalStrutsPortletAction,PortletConfig portletConfig, RenderRequest renderRequest, RenderResponse renderResponse) throws Exception {
    // TODO Auto-generated method stub
        System.out.println("inside the render");
        return super.render(portletConfig, renderRequest, renderResponse);
    }
}

你知道我失踪了还是做错了吗?我只想获取关键字,然后正常地进行搜索。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-10-07 23:29:43

我认为这个将会完成这项工作:

代码语言:javascript
复制
String keywords = ParamUtil.getString(actionRequest, "keywords");

ParamUtil使用portlet命名空间来检索参数。

票数 1
EN

Stack Overflow用户

发布于 2017-05-15 20:38:16

我认为你必须使用originalStrutsPortletAction而不是super。

代码语言:javascript
复制
super.processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
}

只需用originalStrutsPortletAction替换super即可

代码语言:javascript
复制
    originalStrutsPortletAction .processAction(originalStrutsPortletAction, portletConfig, actionRequest, actionResponse);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19180331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档