使用变量值作为href链接

时间:2015-12-28 19:21:53

标签: jsf hyperlink

我有一个支持bean和一个绑定到这个支持bean的XHTML。我有一个名为testerString的私有实例变量。

以下是backbean的摘录

public class LinkDataBackingBean {

    Map<String, LinkInfo> linkMap = new HashMap<String, LinkInfo>();
    List<LinkInfo> list = new ArrayList<LinkInfo>();
    private String testerString = "http://www.google.com";

    public String getTesterString() {
            return testerString;
    }
    public LinkDataBackingBean() throws FileNotFoundException {
        System.out.println("hello");
        for(int i = 0; i < 10; i++){
        list.add(new LinkInfo("hi", "www.google.com"));
        //linkMap = getLinkData()
        }
    }

如您所见,我已使用http://www.google.com手动填充变量。在我的XHTML中有一段时间,我希望有人点击链接,然后它将转到testerString描述的URL。

  1. 我试过的一种方法就是传递变量。

    <f:metadata>
        <f:viewParam name="id" value="#{linkDataBackingBean.testerString}" />
    </f:metadata>
    

    然后:

    <a href="#{param['id']}">TEST</a>
    

    这不起作用,因为“TEST”根本没有显示为超链接(而如果我手动输入“http://www.google.com”作为前一个语句的值,它就显示为超链接,工作正常)。

  2. 我也尝试过以下方法,直接插入支持bean值(必须搞砸格式化或SO不会显示):

    <a href="#{linkDataBackingBean.testerString}">TEST</a>
    

    这产生了类似的结果 - TEST并没有作为带下划线的超链接出现。

  3. 我考虑使用outputLink,但遇到类似的问题,我确实将Text作为超链接,但它没有链接到我指定的域:

    <h:outputLink id="link1" value="#{ linkDataBackingBean.testerString}">
        <h:outputText value="TEST" />
    </h:outputLink>
    

    这链接到我整个项目的基础目录 - http://localhost:8080/name-of-my-proj/faces/

    当我执行与上面相同的操作,但使用“http://www.google.com”填充值时,它会正确地进行。它似乎没有理解我对bootbean的引用。

  4. 让我感到困惑的是确定将TEST显示为超链接所需的内容,当有人点击它时,它们被定向到testerString指示的URL?肯定有一些我错过的JSF“管道”。

0 个答案:

没有答案