JSF新网站创建

时间:2012-03-02 20:16:50

标签: session jsf

我有一个JSF项目,我已经有一个index.xhtml页面正常工作。当我尝试添加另一个XHTML页面时,由于某种原因它没有连接到我的会话作用域托管bean。我在新页面中添加了代码,但它不像我的index.xhtml那样工作。我甚至复制并粘贴了索引中的代码,但仍然无法正常工作。有什么想法吗?

以下是我在新页面中的一些代码:

Amount: <h:inputText value="#{transactionBean.amount}" style="color: Yellow; background: Teal;"/>
Price <h:inputText value="#{transactionBean.pricePaid}" style="color: Yellow; background: Teal;"/

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
    <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>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

2 个答案:

答案 0 :(得分:1)

来自评论:

faces servlet不处理您的第二页。 faces servlet的url模式为/faces/*。因此,所有请求必须包含前缀/faces才能由servlet处理。

如果您使用以下网址调用您的网页,它应该有效:

  

http://localhost:8080/SharePortfolioJSF/faces/companies.xhtml

答案 1 :(得分:1)

您已在/faces/*而不是*.xhtml上映射了面部servlet。这意味着您需要在URL中包含/faces路径以使face servlet运行。

因此,您不应该通过

打开页面
  

http://localhost:8080/SharePortfolioJSF/companies.xhtml

,而不是

  

http://localhost:8080/SharePortfolioJSF/faces/companies.xhtml

然而,更好的方法是使用*.xhtml作为faces servlet的URL模式,这样就不需要摆弄虚拟路径了。

<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>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

(请注意,您的<session-timeout> 30分钟已经是默认值,只需删除它即可