【问题标题】:JSF Custom Servlet Mapping To a FileJSF 自定义 Servlet 映射到文件
【发布时间】:2013-11-29 20:03:27
【问题描述】:

下面的代码用于将带有 /photos 模式的 url 映射到 /photos.jsp,因为 <jsp-file> 标签在 jsf 中无效,那么如何使用 jsf 进行这种映射?
我需要这个有两个原因:

1- 至少从肉眼中隐藏我的底层结构

2-简化网址

  <servlet>
    <servlet-name>photos</servlet-name>
    <jsp-file>/photos.jsp</jsp-file>
  </servlet>
  <servlet-mapping>
    <servlet-name>photos</servlet-name>
    <url-pattern>/photos</url-pattern>
  </servlet-mapping>

谢谢

【问题讨论】:

    标签: java jsp jsf servlets jsf-2


    【解决方案1】:

    至少对肉眼隐藏我的底层结构

    WEB-INF 文件夹中的任何内容都无法从您的服务器外部访问。

    简化网址

    在您的faces-config.xml 中插入以下代码,它会将所有内容从/photo* 重定向到/photo.jsp

    <navigation-rule>
        <from-view-id>/photo*</from-view-id>
        <navigation-case>
            <to-view-id>/photo.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>  
    

    【讨论】:

      【解决方案2】:

      Urls 应该映射到 JSF 控制器组件(servlet 或过滤器),而不是问题中表达的 jsp 文件。下面描述photos.jsp/photo下的url映射到自定义servletPhoto.java

      <servlet>
        <servlet-name>photos</servlet-name>
        <servlet-class>package.Photos</servlet-class>
      </servlet>
      <servlet-mapping>
         <servlet-name>photos</servlet-name>
         <url-pattern>/photos.jsp</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
         <servlet-name>photos</servlet-name>
         <url-pattern>/photos/*</url-pattern>
      </servlet-mapping>
      

      【讨论】:

        猜你喜欢
        • 2012-10-16
        • 1970-01-01
        • 1970-01-01
        • 2012-11-23
        • 2014-02-10
        • 1970-01-01
        • 2015-01-03
        • 2012-01-20
        • 2018-07-09
        相关资源
        最近更新 更多