我正在开发一个使用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
答案 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