【发布时间】:2014-11-27 23:08:43
【问题描述】:
我在 Internet 上找不到任何关于使用 JSF + 托管 bean 在 Java EE 中映射 URL 的好的解释(是的 - 我知道,有一千万个教程,但是在使用 HelloWorld 页面查看了第一百万个之后,我放弃了阅读其余的......)。
在阅读 Java EE + JSF 之前,我正在使用 Spring + JSP 项目,其中 URL 映射是使用控制器中的注释 @GET/@POST 等进行的,以 url 作为属性 - 非常简单的解决方案,每个 URL 一个方法使用方法将资源放入响应页面。 (我不知道它是如何在后台制作的 - 我是初学者,但解决方案非常简单:))
现在我读了一本关于 Java EE 的书,在 web.xml 文件中有一些关于映射的内容,但是很不清楚。我觉得,还有其他想法——需要渲染的 JSF 页面连接到托管 bean 以获得所需的值。但是这里的映射是怎么做的呢?
它可能不干净,所以我会用我的示例来解释。
我的项目结构如下
我希望,页面 customerdetails.xhtml 和 customers.xhtml 可以分别使用 url localhost:8080/P1WSClient/customerdetails.xhtml 和 customers.xhtml 读取。
我已经完成了以下 web.xml 配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Customers servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Customers servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
好的,它正在工作。但是如何制作,例如,当我想让页面客户加载到默认位置 localhost:8080/P1WSClient/ 或客户端加载到位置 localhost:8080/P1WSClient/something1/something2/mypage.html 时?
其他提示 - 为什么开头的 url 模式是 ´/faces/*.jsp´ 和 ´/faces/index/hxtml´?并且索引正在默认网址上加载..我不明白!
其他提示 - 这里有什么 - 每页一个 ManagedBean,或每个实体或.. ??
我找不到任何好的示例或教程,可以解释许多页面和许多 url 结构的 url 映射。如果有人可以解释 Java EE 项目中的映射机制,请在此处添加。任何与托管 bean 和应用程序内的 jsp 连接的映射图也都受到欢迎:-)
【问题讨论】:
标签: jsf jakarta-ee mapping