使用p:selectOneMenu导航 [英] Navigate using p:selectOneMenu

查看:130
本文介绍了使用p:selectOneMenu导航的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用一个选择菜单来导航到网站的不同部分:

I'm using a select one menu to do navigation to different parts of my site:

<p:selectOneMenu value="#{navigator.outcome}">                      
    <f:selectItem itemLabel="Select page..." />
    <f:selectItem itemValue="page1" itemLabel="Page 1" />
    <f:selectItem itemValue="page2" itemLabel="Page 2" />
    <f:selectItem itemValue="page3" itemLabel="Page 3" />
    <p:ajax event="change" listener="#{navigator.navigate}" />
</p:selectOneMenu>

是否有一种更加SEO友好的方式来做到这一点?我担心JavaScript链接不会被跟踪.

Is there a more SEO friendly way of doing this? I'm worried that the JavaScript links won't get followed.

推荐答案

使用带有<h:link><p:column>的自定义内容.

Use custom content with <p:column> with therein a <h:link>.

Bean:

private List<Page> pages;

@PostConstruct
public void init() {
    pages = new ArrayList<Page>();
    pages.add(new Page("Page 1", "/page1.xhtml"));
    pages.add(new Page("Page 2", "/page2.xhtml"));
    pages.add(new Page("Page 3", "/page3.xhtml"));
}

查看:

<p:selectOneMenu var="page">
    <f:selectItems value="#{bean.pages}" var="page" itemLabel="#{page.title}" />
    <p:column>
        <h:link value="#{page.title}" outcome="#{page.viewId}" />
    </p:column>
</p:selectOneMenu>

请注意,这不适用于List<SelectItem>或单个<f:selectItem>条目.您确实需要提供List<Entity>(在上面的示例中,EntityPage).

Note that this doesn't work with List<SelectItem> nor individual <f:selectItem> entries. You really need to provide a List<Entity> (wherein Entity is Page in the above example).

这会生成一个<table>,其中包含完全有价值且可抓取(并且可单击!)的<a>元素.

This generates a <table> with fullworthy and crawlable (and clickable!) <a> elements.

  • What is the difference between redirect and navigation/forward and when to use what?
  • How to navigate in JSF? How to make URL reflect current page (and not previous one)

这篇关于使用p:selectOneMenu导航的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆