Как изменить ContentURI в портлете Weblogic? - PullRequest
0 голосов
/ 20 июня 2011

Я занимаюсь разработкой приложения, которое использует портлеты Weblogic и Struts.Все, что мне нужно сделать, это загрузить разные jsp в один и тот же портлет на основе веб-браузера, который использует клиент.

Например: если у меня есть портлет с именем home.portlet.Если пользователь использует IE, он должен отобразить IE.jsp в home.portlet, если он использует firefox, я должен отобразить firefox.jsp в home.portlet.

Это то, что у меня есть в 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.Как мы можем изменить содержимое jsp в портлете из класса действий Struts, чтобы я мог проверить тип браузера, который использует пользователь, и отобразить страницу соответствующим образом?

Спасибо за помощь и предложения.

Спасибо,

-Сай

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Вы должны будете проверить браузер в вашем 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 ...   
}
0 голосов
/ 29 июня 2011

Мои портлеты не настроены на распорки.Я изменил это сейчас, и оно работает нормально.

EG:

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

А затем в классе действий я проверяю браузер и отображаю соответствующий jsp

...