如何在Weblogic Portlet中更改ContentURI?

时间:2011-06-20 16:15:44

标签: jsp struts weblogic portlet

我正在开发一个使用Weblogic portlet和Struts的应用程序。我需要做的就是根据客户端使用的Web浏览器在同一个portlet中加载不同的jsp。

例如:如果我有一个名为home.portlet的portlet。如果用户使用IE,它应该在home.portlet中显示IE.jsp,如果他使用的是firefox,我应该在home.portlet中显示firefox.jsp。

这就是我在home.portlet中所拥有的:

<netuix:content>
        <netuix:jspContent contentUri="IE.jsp"/>
    </netuix:content>


 //in struts config file
 <forward name="firefox" path="/firefox.jsp>

这就是我为实现它所做的 - 在homeAction.java中:

if(firefox)
return mapping.findForward("firefox");

因此,即使用户使用的是Firefox,它也会显示IE.jsp。 我们如何从Struts Action Class更改portlet中的jsp内容,以便我可以检查用户使用的浏览器的类型并相应地显示页面?

所有帮助和建议表示赞赏。

谢谢,

-Sai

2 个答案:

答案 0 :(得分:1)

您必须在homeAction.java中检查浏览器,然后根据它进行转发。

尝试此操作以检查操作中的浏览器版本。

public void checkBrowserType (HttpServletRequest req)
{
   String s = req.getHeader("user-agent");
   if (s == null)
      return;
   if (s.indexOf("MSIE") > -1)
      System.out.println("using Internet Explorer");
   else if (s.indexOf("Netscape") > -1)
      System.out.println("using Netscape");
   // etc ...   
}

答案 1 :(得分:0)

我的portlet没有为struts配置。我现在改变了,它的工作正常。

EG:

<netuix:strutsContent action="getStudentList" module = "people/students"
  refreshAction = "getStudentList" reqestAttrpersistence="none"/>

然后在动作类中我正在检查浏览器并显示相应的jsp