zoukankan      html  css  js  c++  java
  • JSF 中h:link 和h:commandLink和 h:outputLink之间的区别

    h:link  采用静态导航规则(所谓静态导航就指应用程序动作的逻辑结果字符串是用硬编码的形式给出的)。在outcome属性中设置导航的逻辑结果字符,不能用action。刻逻辑结果字符会去匹配一个相对应的结果页面。这会根据faces-config.xml或者页面的名来进行匹配。

    h:commandLink  它比较h:link多一人功能,就是它可用action来进行动态导航,但它要用于h:form。

    h:outputLink  它就是在value中直接来设置键接的路径。

    示例

    目录结构build.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <project name="" basedir="../" default="">
       <target name="init" description="">
        <mkdir dir="web/WEB-INF/classes"/>
        <mkdir dir="web/WEB-INF/lib"/>
        <mkdir dir="web/resources"/>
        <mkdir dir="src/com/liang/test"/>
        <touch file="src/com/liang/test/Login.java"/>
        <touch file="web/WEB-INF/web.xml"/>
        <touch file="web/WEB-INF/faces-config.xml"/>
        <touch file="web/login.xhtml"/>
        <touch file="web/welcome.xhtml"/>
        <mkdir dir="web/META-INF"/>
        <touch file="web/META-INF/context.xml"/>
       </target>
    </project>

    Login.java

     1 package com.liang.test;
     2 
     3 public class Login{
     4 
     5     public Login(){}
     6 
     7     public String goWelcome(){
     8 
     9     return "welcome";
    10     }
    11 
    12 }

    faces-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config version="2.2"
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    
        <managed-bean>
        <managed-bean-name>login</managed-bean-name>
        <managed-bean-class>com.liang.test.Login</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
    </faces-config>

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="WebApp_ID" version="3.0">
    
        <servlet>
            <servlet-name>JSF</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>    
    
        <servlet-mapping>
            <servlet-name>JSF</servlet-name>
            <url-pattern>*.faces</url-pattern>
        </servlet-mapping>
    
        <servlet-mapping>
            <servlet-name>JSF</servlet-name>
            <url-pattern>*.xhtml</url-pattern>
        </servlet-mapping>
    </web-app>

    login.xhtml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core">
    <f:view>
    <head>
    <style type="text/css">
    ul li{list-style:none;}
    .lititle{color:blue;font-size:24px;list-style:circle;}
    </style>
    </head>
    
    <body>
        <ul>
        <li class="lititle">&#160;&#160;h:link测试</li>
        <li><h:link value="welcome" outcome="welcome"/></li><br/>
        <li> 
        <h:link  outcome="welcome">
            <h:graphicImage library="pic" name="beauty.gif" title="welcome"/>
        </h:link></li>
    
        <li><h:link value="welcome" outcome="welcome">
            <f:param value="hello" name="hi"/>
            </h:link></li>
        <br/>
        <li class="lititle">&#160;&#160;h:commandLink测试</li>
        <h:form>
        <li>
            <h:commandLink action="#{login.goWelcome}" value="welcome"/>
        </li>
        <li>
            <h:commandLink action="#{login.goWelcome}" >
            <h:graphicImage library="pic" name="beauty.gif" title="welcome"/>
            </h:commandLink>
        </li>
        <li>
           <h:commandLink action="#{login.goWelcome}" value="welcome">
            <f:param name="hi" value="hello"/>
           </h:commandLink>
        </li>
        </h:form>
        <br/>
    
        <li class="lititle">&#160;&#160;h:outputLink测试</li>
        <li><h:outputLink value="welcome.xhtml">welcome</h:outputLink></li>
        <li><h:outputLink value="welcome.xhtml">
            <h:graphicImage library="pic" name="beauty.gif" title="welcome"/>
            </h:outputLink></li>
        <li></li>
        </ul>
    </body>
    </f:view>
    </html>

    welcome.xhtml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core">
    
    
        <h:head>
            <h:title></h:title>
        </h:head>
    
        <h:body>
            #{param.hi}&#160;&#160;<h:outputText value="welcome" id="welcome"/>
        </h:body>
        
    </html>

    login.xhtml的网页页面

    完整的实例:

    链接:http://pan.baidu.com/share/link?shareid=3720686331&uk=4012897532 密码:6ptk

  • 相关阅读:
    es6笔记6^_^generator
    es6笔记5^_^set、map、iterator
    es6笔记4^_^function
    es6笔记3^_^object
    关于eslint的使用与配置,以及prettier的使用
    关于查看本机ssh公钥以及生成公钥
    Github上传图片图床
    力扣剑指Offer:39. 数组中出现次数超过一半的数字
    计蒜客:求平均年龄Python方法
    力扣:面试题59. 滑动窗口的最大值Python题解
  • 原文地址:https://www.cnblogs.com/liangjingguo/p/3469758.html
Copyright © 2011-2022 走看看