在这个小项目中,只有一个类RichBean.java和一个JSF文件index.html,用于演示在JSF中使用CDI。我的问题是关于“
<welcome-file>faces/index.xhtml</welcome-file>"
在web.xml中定义。为什么它是“面孔/”?
没有提到“faces /”目录或配置。我认为“面孔”只是一个可以是任何东西的名字,但事实并非如此。我尝试将其更改为其他内容,即“faceg”,然后它不起作用。
RichBean.java
@Named
@SessionScoped
public class RichBean implements Serializable {
private String name;
@PostConstruct
public void postContruct() {
name = "John";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
的index.xhtml
....
<body>
<ui:composition template="/templates/template.xhtml">
<ui:define name="title">Hello world JSF</ui:define>
<ui:define name="body">
<fieldset style="width:500px">
<legend>Helloworld using JSF and RichFaces</legend>
<p>
This example demonstrates adding ajax processing and updating to a standard JSF component.
</p>
<rich:panel header="Ajax enabled inputText">
<h:form id="helloWorldJsf">
<h:outputLabel value="Name:" for="nameInput"/>
<h:inputText id="nameInput" value="#{richBean.name}">
<a4j:ajax event="keyup" render="output"/>
</h:inputText>
<h:panelGroup id="output">
<h:outputText value="Hello #{richBean.name}!"
rendered="#{not empty richBean.name}"/>
</h:panelGroup>
</h:form>
</rich:panel>
</fieldset>
</ui:define>
</ui:composition>
</body>
</html>
的beans.xml
<beans 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/beans_1_0.xsd">
</beans>
web.xml中。
如何配置“faces /”?我不知道它是如何以及为什么它与项目中的任何其他内容相关联。
我正在学习这个演示。请帮助理解这一点。非常感谢。
<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">
<!-- add a welcome-file-list entry to allow JSF pages to be used as welcome files -->
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
答案 0 :(得分:0)
Servlet类FacesServlet启动JSF请求处理 生命周期,必须在web.xml中定义。 servlet映射 tag定义FacesServlet应该执行的URL。 模式 / faces / * 通常由JSF规范使用,但是 可以使用任何其他前缀或扩展程序。该示例使用as web-app属性version =“2.5”这意味着我们正在使用 servlet-api版本2.5。如果你使用tomcat 6我们需要最少 版本2.5中的servlet-api。与jsf 1.2相比没什么变化 这个例子。 您可以在下面看到web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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 web-app_2_5.xsd"
version="2.5">
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<display-name>HelloWorld with JSF RI 2 (Beta 2)</display-name>
<servlet>
<display-name>FacesServlet</display-name>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>
您可以根据自己的要求将/ faces / 更改为/ facesg / ,这对您有用。
我希望它会解决您的疑问!!