2

FacesContext からポートレット初期化パラメータ「javax.portlet.faces.defaultViewId.view」を取得する次のコードを取得しました。

 FacesContext fc = FacesContext.getCurrentInstance();
 ExternalContext externalContext = facesContext.getExternalContext();
 PortletContext portletContext = (PortletContext) externalContext.getContext();
 return String defaultView = portletContext.getInitParameter("javax.portlet.faces.defaultViewId.view");

portlet.xml ファイルには、次の init パラメータが含まれています。

<init-param>
    <name>javax.portlet.faces.defaultViewId.view</name>
    <value>/pages/setup/page.xhtml</value>
</init-param>

私のポートレットは Liferay にデプロイされ、Liferay Faces Bridge を使用しています。上記のコードを実行すると、常に defaultValue に null 値が返されます。誰かが私が間違っていることを教えてください。

4

2 に答える 2

3

ポートレット API へのハードコーディングされた依存関係を避けるために、ExternalContext.getInitParameter(String) メソッドを使用するだけです。

ExternalContext externalContext = facesContext.getExternalContext();
String defaultView = externalContext.getInitParameter("javax.portlet.faces.defaultViewId.view");
于 2016-04-28T21:14:02.573 に答える