JSF 牛刀小试

----------------------------landing.xhtml-----------------

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html>
<ui:composition template="../include/templates/hibuTemplate.xhtml"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:c="http://java.sun.com/jstl/core">
<f:loadBundle basename="messages_analytics" var="msg"/>
    
<ui:define name="pageTitle">
    <h:outputFormat value="#{msg['landing.title']}" escape="false">
           <f:param value="#{msg['landing.page.title']}" />
       </h:outputFormat>
</ui:define>
    
    
<ui:define name="customStyle">
     <link rel="stylesheet" type="text/css" href="../css/hibu/landing.css" />   
</ui:define>

<ui:define name="customScript">
    <script type="text/javascript" src="../js/hibu/landing.js"></script>
</ui:define>

<ui:define name="content">
<div id="content">
    <div class="pageTitle">
        <h:outputText value="#{msg['landing.page.description']}"/>
    </div>
    <h:form>
        <c:set var="landing" value="#{presentationManagementBase.landing}"/>
        <!-- Search Product -->
        <ui:include src="components/product.xhtml">
            <ui:param name="productList" value="#{landing.searchProductList}"></ui:param>
            <ui:param name="productName" value="Search"></ui:param>
        </ui:include>
                .......
    </h:form>
</div>
</ui:define>
</ui:composition>

-------------------------hibuTemplate.xhtml--------------------------------------------------------------------------------------

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:yb="http://reports.yellowbook.com/ns/wr">
<f:loadBundle basename="messages_analytics" var="msg"/>

<head>
    <title>
        <ui:insert name="pageTitle"/>
    </title>

    <!-- meta -->
    <meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE"/>
    <meta http-equiv="Expires" CONTENT="0"/>
    <meta http-equiv="Cache-Control" CONTENT="no-cache"/>
    <meta http-equiv="Pragma" CONTENT="no-cache"/>
    
    <link rel="shortcut icon" type="image/x-icon" href="../images/hibu/favicon.ico"/>

    <!-- CSS -->
    <link rel="stylesheet" type="text/css" href="../yui/container/assets/skins/sam/container.css"/>
    <link rel="stylesheet" type="text/css" href="../yui/fonts/fonts-min.css"/>
    <link rel="stylesheet" type="text/css" href="../yui/datatable/assets/skins/sam/resource.htm?name=yahoo_styles_widgets"/>
    <link rel="stylesheet" type="text/css" href="../css/hibu/common.css"/>
    <link rel="stylesheet" type="text/css" href="../css/hibu/hibuYuiTable.css"/>
    <ui:insert name="customStyle"/>

    <!-- javascript -->
    <script type="text/javascript" src="../dwr/engine.js"/>
    <script type="text/javascript" src="../dwr/util.js"/>
    <script type="text/javascript">
        dwr.engine.setErrorHandler(function (msg, err) {
            var eName = (err instanceof Error) ? "JS Error" : "DWR Exception";
            var myE = new Error((err.message || msg) + " (" + (err.javaClassName ? err.javaClassName : eName) + ")");
            myE.cause = err;
            myE.name = eName;
            if (window.console){
                console.error(myE);
            }else{
                setTimeout(function() {
                    throw myE
                }, 0);
            }
        });
    </script>
    <script type="text/javascript" src="../resource.htm?name=yahoo_core"></script>
    <script type="text/javascript" src="../js/hibu/lib/jquery-1.10.1.min.js"></script>
    <script type="text/javascript" src="../dwr/interface/jBaseManager.js"></script>
    <script type="text/javascript" src="../js/hibu/common.js"></script>
    <yb:js>
        $.extend(true, ybApp.msg, <yb:jsValue value="#{msg}" converterId="messagesConverter"/>);
        ybApp.features = <yb:jsValue value="#{presentationManagementBase.reportFeatures}" converterId="featuresConverter"/>;
        $.extend(true, ybApp.filter, <h:outputText value="#{presentationManagementBase.initFilterData}" escape="false"/>);
    </yb:js>
    <ui:insert name="customScript"/>

</head>

<body class="yui-skin-sam">
<div id="loginInfoWrapper">
    <ui:include src="../general/hibu/loginInfo.xhtml"/>
</div>
<div id="outerWrapper">
    <div id="mainWrapper">
        <ui:include src="../general/hibu/header.xhtml"/>

        <ui:insert name="content"/>

        <div class="clear"></div>
        <ui:include src="../general/hibu/footer.xhtml"/>
    </div>
</div>

<div style="height:0px;width:0px;visibility:hidden">
    <ui:insert name="dialogs"/>
</div>
<!-- Google Analytics and Tracker -->
<script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
    try {
        var pageTracker = _gat._getTracker("UA-7193248-2");
        pageTracker._trackPageview();
    } catch(err) {
    }
</script>

</body>
</html>

-------------------header.xhtml----------------------------------------------------------------------------------------------------------

<div id="header" class="clearBlock" xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:c="http://java.sun.com/jstl/core"
        xmlns:f="http://java.sun.com/jsf/core">
<f:loadBundle basename="messages_analytics" var="msg"/>   
    <div class="logo">
        <img alt="logo" class="logoImg" src="../images/hibu/logo.png" />
    </div>
    <div class="siteName">
        <span class="subBrand"><h:outputText value="#{msg['common.header.name']}"/></span>
        <span class="department"><h:outputText value="#{msg['common.header.sub.name']}"/></span>
    </div>
    <c:set var="isAssigned" value="#{presentationManagementBase.assignedAnalystInfo.name!='WebReach'}"/>
    <c:if test="#{!empty presentationManagementBase.currentMediaBuyUser.contactInfo and showSelectOptions == 'true'}">
        <div id="selectOptions" class="selectOptions">
            <div class="selectBox">
                <span class="surface"> <input class="ui-btn-text" type="text"
                    id="differentProductInput" value="" /> <span class="ui-icon"></span>
                </span> <select class="selection" οnchange="changeDifferentProduct();"
                    id="productSelect">
                </select>
            </div>
            <div class="selectBox">
                <span class="surface"> <input class="ui-btn-text" type="text"
                    id="accountSelectInput" value="" /> <span class="ui-icon"></span>
                </span> <select id="accountSelect" class="selection"
                    οnchange="changeAccount();">
                </select>
            </div>

            <a class="productNameReportsButton buttonStyle"
                οnclick="viewDifferentProduct();">View</a>
        </div>
        <div class="clear"></div>
        <div class="scTitle"></div>
        
    </c:if>
</div>

-------------\web\WEB-INF\faces-config.xml-------------------------------------------------

<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
        "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

<!--faces-config version="1.2"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"-->

<faces-config>
    <application>
        <view-handler>
            com.sun.facelets.FaceletViewHandler
        </view-handler>
    </application>

    <application>
        <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
        <locale-config>
            <default-locale>en</default-locale>
            <supported-locale>en</supported-locale>
        </locale-config>
        <message-bundle>
            messages_analytics
        </message-bundle>
    </application>


    <!-- JSF conversion helpers -->
    <converter id="wrMessagesConverter">
        <converter-id>messagesConverter</converter-id>
        <converter-class>com.yellowbook.presentation.utils.convert.MessagesConverter</converter-class>
    </converter>


    <!--Google Maps API Key manager for maps demos -->
    <managed-bean>
        <managed-bean-name>googleMapsAPIKey</managed-bean-name>
        <managed-bean-class>com.yellowbook.presentation.utils.GoogleMapsAPIKey</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
            <property-name>propFileLocation</property-name>
            <value>/webreach/config/webreach.properties</value>
        </managed-property>
    </managed-bean>

    <!-- failed to authenticate -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>failure</from-outcome>
            <to-view-id>/include/login.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
    
    <!-- MB_name equals "SEOA" or "SEOW" -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>isSEOMB</from-outcome>
            <to-view-id>/include/login.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>

    <!-- customers without any data -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>nomediabuy</from-outcome>
            <to-view-id>/include/login.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
    
    <!-- username or password not input -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>nouserpw</from-outcome>
            <to-view-id>/include/login.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
    
    <!-- password'length less than 6 letters -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>errpwlen</from-outcome>
            <to-view-id>/include/login.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>

    <!-- first-time users -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>firstloggedin</from-outcome>
            <to-view-id>/campaign/firstlogin.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>

    <!-- manager/analyst login -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>notcustomer</from-outcome>
            <to-view-id>/campaign/customerSelector.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
   
    <!-- search product login -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.getDemoSelect}</from-action>
            <from-outcome>searchdashboard</from-outcome>
            <to-view-id>/campaign/searchDashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
    
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.getWRBDemoSelect}</from-action>
           <from-outcome>success</from-outcome>
            <to-view-id>/campaign/dashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
   
    <!-- normal login -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>landing</from-outcome>
            <to-view-id>/campaign/landing.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>dashboard</from-outcome>
            <to-view-id>/campaign/dashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{authenticationManager.login}</from-action>
            <from-outcome>noreport</from-outcome>
            <to-view-id>/campaign/noreport.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>

    
    <!-- logged out manually -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{authenticationManager.logout}</from-action>
            <from-outcome>loggedout</from-outcome>
            <to-view-id>/include/login.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
 
    <!-- next page -->
    <navigation-rule>
        <!-- level multi mediabuy -->
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>multidashboard</from-outcome>
            <to-view-id>/campaign/dashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <!-- level single -->
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>singledashboard</from-outcome>
            <to-view-id>/campaign/dashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <!-- level product searchdashboard -->
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>searchdashboard</from-outcome>
            <to-view-id>/campaign/searchDashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>searchdailyactivity</from-outcome>
            <to-view-id>/campaign/dailyactivity.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>searchkeywordclick</from-outcome>
            <to-view-id>/campaign/keywordclick.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>searchadText</from-outcome>
            <to-view-id>/campaign/adText.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <!-- TODO : level product socialdashboard -->
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>socialdashboard</from-outcome>
            <to-view-id>/campaign/socialDashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <!-- level product displaydashboard -->
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>displaydashboard</from-outcome>
            <to-view-id>/campaign/displayDashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>display_activecampain</from-outcome>
            <to-view-id>/campaign/displayDailyActivity.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>display_ads</from-outcome>
            <to-view-id>/campaign/displayAdText.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <!-- level product listingdashboard -->
        <navigation-case>
            <from-action>#{presentationManagementBase.getNextPage}</from-action>
            <from-outcome>listingdashboard</from-outcome>
            <to-view-id>/campaign/listingDashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
             .......
        <!-- select medibuy on landing page -->
        <navigation-case>
            <from-action>#{presentationManagementBase.selectMediabuy}</from-action>
            <from-outcome>success</from-outcome>
            <to-view-id>/campaign/dashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <!-- my profile -->
        <navigation-case>
            <from-action>#{presentationManagementBase.showProfile}</from-action>
            <from-outcome>success</from-outcome>
            <to-view-id>/campaign/myProfile.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.showHelp}</from-action>
            <from-outcome>success</from-outcome>
            <to-view-id>/campaign/helpCenter.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.showGoogleReport}</from-action>
            <from-outcome>success</from-outcome>
            <to-view-id>/campaign/googleReports.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>
    <!-- back page -->
    <navigation-rule>
        <navigation-case>
            <from-action>#{presentationManagementBase.getBackPage}</from-action>
            <from-outcome>multidashboard</from-outcome>
            <to-view-id>/campaign/dashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-action>#{presentationManagementBase.getBackPage}</from-action>
            <from-outcome>singledashboard</from-outcome>
            <to-view-id>/campaign/dashboard.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
            ......                  
    </navigation-rule>
    
    
    <managed-bean>
        <managed-bean-name>userManagers</managed-bean-name>
        <managed-bean-class>com.yellowbook.presentation.analytics.userManager</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>wvd</property-name>
            <value>#{webvisibility}</value>
        </managed-property>
    </managed-bean>
    
    <managed-bean>
        <managed-bean-name>authenticationManager</managed-bean-name>
        <managed-bean-class>com.yellowbook.presentation.analytics.AuthenticationPresManager</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>usersDao</property-name>
            <value>#{usersHibernateDao}</value>
        </managed-property>
        <managed-property>
            <property-name>base</property-name>
            <value>#{presentationManagementBase}</value>
        </managed-property>
        <managed-property>
            <property-name>usersFacade</property-name>
            <value>#{usersFacadeManager}</value>
        </managed-property>      
        <managed-property>
            <property-name>mediaBuyFacade</property-name>
            <value>#{mediaBuyFacade}</value>
        </managed-property>       

        <managed-property>
            <property-name>lastStatus</property-name>
            <value/>
        </managed-property>
    </managed-bean>

    <managed-bean>
        <managed-bean-name>presentationManagementBase</managed-bean-name>
        <managed-bean-class>com.yellowbook.presentation.analytics.PresentationManagementBase</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>

        <managed-property>
            <property-name>presentationBase</property-name>
            <value>#{presentationAdaptorBase}</value>
        </managed-property>

        <managed-property>
            <property-name>reportFeatures</property-name>
            <value/>
        </managed-property>

        <managed-property>
            <property-name>baseURI</property-name>
            <value/>
        </managed-property>
        
        <managed-property>
            <property-name>persistentFilter</property-name>
            <value/>
        </managed-property>
        <managed-property>
            <property-name>productService</property-name>
            <value>#{productService}</value>
        </managed-property>
    </managed-bean>

       .........
     
    <navigation-rule>
        <navigation-case>
            <from-action>#{cancellationSurveyPresManager.submit}</from-action>
            <to-view-id>/survey/thankYou.xhtml</to-view-id>
            <redirect/>
        </navigation-case>
    </navigation-rule>

    <managed-bean>
        <managed-bean-name>healthChecker</managed-bean-name>
        <managed-bean-class>com.yellowbook.presentation.analytics.utilty.HealthChecker</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
   
    <!-- end of ybleads entries -->
</faces-config>

-------------------------------\web\WEB-INF\web.xml---------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>file:d:/FibonacciXue/work/webreach/config/log4j/analytics/log4j.properties</param-value>
    </context-param>
    <context-param>
        <param-name>log4jExposeWebAppRoot</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>smtphost</param-name>
        <param-value>210.22.128.203</param-value>
    </context-param>
    <context-param>
        <param-name>typeaheadurl</param-name>
        <param-value>http://ybkopwrdev03:8080/ybtypeahead/categorytypeahead</param-value>
    </context-param>
    <context-param>
        <param-name>buildNumber</param-name>
        <param-value>${build.number}</param-value>
    </context-param>
    <context-param>
        <param-name>budgetEstimator.costMargin</param-name>
        <param-value>0.58</param-value>
    </context-param>
    <context-param>
        <param-name>webreachEmail</param-name>
        <param-value>gang.chen@yellowbook.com</param-value>
    </context-param>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/classes/applicationContext-extract.xml
            /WEB-INF/classes/applicationContext.xml
            /WEB-INF/classes/applicationContext-address-parser.xml
            /WEB-INF/classes/application-geocoder.xml
            /WEB-INF/classes/applicationContext-jdbc.xml
            /WEB-INF/classes/applicationContext-jdbc-report.xml
            /WEB-INF/classes/applicationContext-jdbc-analytics.xml
            /WEB-INF/classes/applicationContext-builder.xml
            /WEB-INF/classes/applicationContext-service.xml
            /WEB-INF/classes/applicationContext-jms.xml
            /WEB-INF/classes/applicationContext-override.xml
            /WEB-INF/classes/applicationContext-quartz.xml
            /WEB-INF/classes/applicationContext-quartz-demo.xml
            /WEB-INF/classes/applicationContext-adaptor.xml
            /WEB-INF/classes/applicationContext-healthcheck.xml
            /WEB-INF/classes/applicationContext-mediabuycall.xml
        </param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.application.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config.xml</param-value>
    </context-param>
    <!--context-param>
        <param-name>com.sun.faces.verifyObjects</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.validateXml</param-name>
        <param-value>true</param-value>
    </context-param-->

    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
        <description>
            State saving method: "client" or "server" (= default)
            See JSF Specification 2.5.2
        </description>
    </context-param>
    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
    <context-param>
        <param-name>facelets.DEVELOPMENT</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>facelets.SKIP_COMMENTS</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>facelets.LIBRARIES</param-name>
        <param-value>
            /WEB-INF/yellowwr/custom.taglib.xml;
            /WEB-INF/yellowcp/custom.taglib.xml
        </param-value>
        <!--<param-value>/WEB-INF/yellowwr/custom.taglib.xml</param-value>-->
    </context-param>

    <context-param>
        <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
        <param-value>true</param-value>
    </context-param>


    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

    <listener>
        <listener-class>com.yellowbook.listener.SessionPageVisitListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>AutoComplete Servlet</servlet-name>
        <servlet-class>com.yellowbook.presentation.servlet.AutoComplete</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>Mapping Import Servlet</servlet-name>
        <servlet-class>com.yellowbook.presentation.servlet.MappingImport</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>Debug Info Servlet</servlet-name>
        <servlet-class>com.yellowbook.presentation.servlet.DebugInfo</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>Email Tracking Servlet</servlet-name>
        <servlet-class>com.yellowbook.presentation.servlet.EmailTracking</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>


    <!--<servlet>
        <servlet-name>dwr</servlet-name>
        <servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>-->


    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

    <!-- (to enable directory mapping without the htm extension -->
    <!--<servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/dispatch/*</url-pattern>
    </servlet-mapping>-->

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AutoComplete Servlet</servlet-name>
        <url-pattern>/autocomplete</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Mapping Import Servlet</servlet-name>
        <url-pattern>/mappingimport</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Debug Info Servlet</servlet-name>
        <url-pattern>/debuginfo</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Email Tracking Servlet</servlet-name>
        <url-pattern>/emailcheck</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>customHibernateFilter</filter-name>
        <filter-class>com.yellowbook.presentation.filter.YBOpenSessionsInViewFilter</filter-class>
        <init-param>
            <param-name>firstSessionFactoryBeanName</param-name>
            <param-value>sessionFactory</param-value>
        </init-param>
        <init-param>
            <param-name>secondSessionFactoryBeanName</param-name>
            <param-value>ybSessionFactory</param-value>
        </init-param>
    </filter>


    <filter>
        <filter-name>DwrFacesFilter</filter-name>
        <filter-class>org.directwebremoting.faces.FacesExtensionFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>DwrFacesFilter</filter-name>
        <url-pattern>/dwr/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>customHibernateFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--
    <filter-mapping>
        <filter-name>ybHibernateFilter</filter-name>
        <url-pattern>/web-analytics/*</url-pattern>
    </filter-mapping>
    -->

    <filter>
        <description>
            Require that the user log in before accessing any page with
            url-pattern /campaign/*
        </description>
        <filter-name>SecurityFilter</filter-name>
        <filter-class>
            com.yellowbook.filter.security.AnalyticsSecurityFilter
        </filter-class>
        <init-param>
            <param-name>com.superpages.vts.LoginURI</param-name>
            <param-value>/include/login.jsf</param-value>
        </init-param>
        <init-param>
            <description>
                ViewIds for which this filter must not forward back to
                the login page.
            </description>
            <param-name>com.yellowbook.filter.Security.NoForwardViewIds</param-name>
            <param-value>/include/welcome.jsf /campaign/helpCenter.xhtml /campaign/displaySpecAds.xhtml /campaign/components/vervePreviewAd.html</param-value>
        </init-param>
        <init-param>
            <description>
                same as webreach.keyFile defined in webreach.static.properties file through Spring
            </description>
            <param-name>webreach.keyFile</param-name>
            <param-value>/webreach/data/security/key.dat</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/campaign/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/index.html</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jExtensionHelper.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <!-- <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jBaseManager.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jAdText.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping> -->
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jAdvertiser.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jClickReport.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jCallTracking.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jDailyActivity.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <!-- <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jDashBoard.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>-->
    <filter-mapping>
        <filter-name>SecurityFilter</filter-name>
        <url-pattern>/dwr/interface/jUserManager.js</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>
            index.html
        </welcome-file>
    </welcome-file-list>


    <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <display-name>DWR Servlet</display-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>

    <!--TODO: setup JAWR to reenable this-->
    <!--<servlet>
        <servlet-name>ResourceServlet</servlet-name>
        <servlet-class>net.jawr.web.servlet.JawrServlet</servlet-class>
        <init-param>
            <param-name>configLocation</param-name>
            <param-value>jawr.properties</param-value>
        </init-param>
        <init-param>
            <param-name>mapping</param-name>
            <param-value>/resources/*</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ResourceServlet</servlet-name>
        <url-pattern>/resources/*</url-pattern>
    </servlet-mapping>-->

    <!--<error-page>
        <error-code>500</error-code>
        <location>/include/error.jsf</location>
    </error-page>-->

   <!--  <security-constraint>
        <web-resource-collection>
            <web-resource-name>Automatic SLL Forwarding</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>
                CONFIDENTIAL
            </transport-guarantee>
        </user-data-constraint>
    </security-constraint> -->

</web-app>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值