0

2 つの Web アプリがある場合、2 つの間のナビゲーションhttp://www.abc.com/app1http://www.abc.com/app2どのように処理すればよいですか?

サイドバーにあるメニューのリンクを使用して app2 に移動できるようにしたいと思います...

<p:menu>  
  <p:menuitem outcome="/index" value="Home" icon="ui-icon-home"/>  
  <p:submenu label="app1">
    <p:menuitem outcome="/page1" value="page1" />  
    <p:menuitem outcome="/page2" value="page2" />  
  </p:submenu>  
  <p:submenu label="app2">
    <!-- all the links below should point to pages in app2 -->
    <p:menuitem outcome="/pageA" value="pageA" />  
    <p:menuitem outcome="/pageB" value="pageB" />  
  </p:submenu>  
</p:menu>

outcome="/pageA"app1でその名前のページを見つけようとして404になるため、明らかに機能しません。試しoutcome="/app2/pageA"てみましoutcome="../app2/pageA"たが、どちらも機能しません。他の選択肢は何ですか?

"http://www.abc.com/app2/pageA"また、デプロイを行う場所によってホスト名が変わるため、実際には URL をハードコーディングしたくないことを付け加えておく必要があります。

4

2 に答える 2

2

次のようにすることでそれを達成できます。

マネージド Bean:

@ManagedBean  
@ViewScoped
public class YourBean implements Serializable{

String project_path;

public String getProject_path() {
    return project_path;
}

public void setProject_path(String project_path) {
    this.project_path = project_path;
}

@PostConstruct
public void init() {
    HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
    project_path = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort();
}

public YourBean() {
}
}

xhtml:

       <p:menu>
            <p:menuitem outcome="/index" value="Home" icon="ui-icon-home"/>  
            <p:submenu label="app1">
                <p:menuitem url="#{yourBean.project_path}/app1/page1" value="Page1"/>  
                <p:menuitem url="#{yourBean.project_path}/app1/page2" value="Page2"/>  
            </p:submenu>  
            <p:submenu label="app2">
                <p:menuitem url="#{yourBean.project_path}/app1/pageA" value="PageA"/>  
                <p:menuitem url="#{yourBean.project_path}/app1/pageA" value="PageA"/>   
            </p:submenu>  
        </p:menu>
于 2013-05-17T19:06:00.343 に答える