相关疑难解决方法(0)

WEB-INF目录下的JSF文件,我该如何访问它们?

我想将我的JSF 2.0 xhtml文件放在WEB-INF\jsf下.我如何访问它们呢?我知道WEB-INF内部的任何内容都没有暴露在外面,所以我需要一个控制器来将我重定向到相应的JSP,对吧?(这也是模型2模式iirc).

我可以使用web.xml/faces-config.xml中的参数来实现这一点吗?我认为FacesServlet是我的webapp的控制器所以它应该用于此目的?

另一个理解模型2模式的问题.是否每个操作都必须首先进入servlet,然后处理下一个可能的步骤?因此,<a href="anotherPage.html" />在这种模式中禁止使用简单,因为它不会进入控制servlet?

java model-view-controller web-inf jsf-2

11
推荐指数
1
解决办法
2万
查看次数

自定义FacesServlet <url-pattern>以摆脱.xhtml扩展名

我有Login.xhtml和Home.xhtml.我web.xml按如下方式配置了url模式

<servlet-mapping>
   <servlet-name>Faces Servlet</servlet-name>
   <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

<welcome-file-list>
  <welcome-file>Login.xhtml</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)

当我运行整个项目时,登录页面URL就像这样http://localhost:8080/fran/Login.xhtml,这fran是我的项目名称..

但是,我希望它http://localhost:8080/fran/Login/代替http://localhost:8080/fran/Login.xhtml.

我怎样才能做到这一点?是否可以<url-pattern>为每个页面自定义以摆脱.xhtml扩展?

jsf friendly-url jsf-2

11
推荐指数
1
解决办法
1万
查看次数

JSF 2.0查看除xhtml之外的文件扩展名

除了XHTML之外,如何使用具有不同扩展名的视图文件仍然映射到JSF 2.0应用程序中的Faces Servlet?

我正在将JSF 1.2应用程序迁移到2.0,并且我使用文件扩展名jspx.我不想将它们改为xhtml.

在此先感谢您的帮助.

这是我现在的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="JSF2Sample" version="2.5"
    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-app_2_5.xsd">

    <context-param>
        <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
        <param-value>/WEB-INF/app-tags.taglib.xml</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jspx</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

      <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>*.faces</url-pattern>
    </servlet-mapping>  
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>

    <mime-mapping>
        <extension>xcss</extension>
        <mime-type>text/css</mime-type>
    </mime-mapping>

</web-app>
Run Code Online (Sandbox Code Playgroud)

web.xml richfaces jsf-2

2
推荐指数
1
解决办法
6795
查看次数