Portlet里面实现页面的跳转,并传递参数

Portlet里面实现页面的跳转,并传递参数
问题:
我要在同一个portlet里面实现页面的跳转,并传递参数,该怎么做呢 
 比如说jsp文件为A.jsp和B.jsp,java文件为portlet.java, 
  
 我在A.jsp里面这样写: 
 PortletURI   url=portletResponse.createURI(); 
 url.addPatameter("index ", " "+index);(index为int型,即我要传递的参数) 
 <a href="<%=url%>">Go to B.jsp当我点击此链接后,portlet.java中的doview()被调用,而我怎样在doView()中获取这个index参数呢,然后做一些处理,转到B.jsp页面呢.

答:

portlet分响应动作和呈现两个阶段,最好不要在doview里处理逻辑。你可以<a href="<portletAPI:createURI><portletAPI:URIAction name='<%=actionString%>'/><portletAPI:URIParameter   name= "index "   value= "1 "/> </portletAPI:createURI> "> go to b.jsp </a> ,在portlet的actionPerformed函数里相应该请求,而doView()决定include哪个jsp。另外如果是弹出,可以用 <a href= " <%=response.encodeURL( "/jsp/html/b.jsp?index=1 ")%> "   target= "_blank "> open   b.jsp </a> 。
其中actionString是你自己定义的动作名称,例如 "com.directAction ",而第二种方式好像也可以直接转到b页面(去掉target,不过不推荐这样做),

public   void   actionPerformed(ActionEvent   event)   throws   PortletException{
        String   actionString      =   event.getActionString();
        PortletRequest   request   =   event.getRequest();
        if(actionString.equals(someaciton)){
                  //do   something
        }
}

你可能感兴趣的:(Portlet里面实现页面的跳转,并传递参数)