JSF自定义Servlet映射到文件

时间:2013-11-16 11:25:56

标签: java jsp jsf servlets jsf-2

下面的代码用于将带有/ photos模式的网址映射到/ 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>

谢谢

2 个答案:

答案 0 :(得分: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>  

答案 1 :(得分:0)

Urls应该映射到JSF控制器组件(servlet或过滤器),而不是映射到问题中表达的jsp文件。下面介绍photos.jsp下的/photo和网址映射到自定义servlet Photo.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>
相关问题