Như MaVRoSCy nói rằng bạn có thể sử dụng Prettyfaces để viết lại URL của bạn. Tài liệu của họ rất hữu ích và rất rõ ràng. Dưới đây là các bước để làm theo (không có cách tiếp cận phụ thuộc Maven):
1) Tải xuống jar mới nhất tùy thuộc vào phiên bản JSF của bạn và đặt nó vào đường dẫn lớp dự án của bạn.
2) Thêm sau để web.xml
<filter>
<filter-name>Pretty Filter</filter-name>
<filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Pretty Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
3) Tạo dưới WEB-INF
một tập tin: pretty-config.xml
mà sẽ xác định prettyfaces bạn ánh xạ, như thế này:
<pretty-config xmlns="http://ocpsoft.com/prettyfaces/3.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.0
http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.0.xsd">
<url-mapping id="accueil">
<pattern value="/" />
<view-id value="/path-to-yourpage.xhtml" />
</url-mapping>
<url-mapping id="error">
<pattern value="/" />
<view-id value="/tpath-to-yourpage2.xhtml" />
</url-mapping>
</pretty-config>
4) Bây giờ khi xác định outcome
tại của bạn đậu được quản lý, bạn nên trả lại pretty:idOfURLMapping
. Ví dụ: pretty:accueil
sẽ chuyển hướng đến trang được xác định đầu tiên ở trên và thông thường nó sẽ hiển thị http://localhost:8080/PlanificationDrapageWeb/
làm URL.
Cuối cùng, lưu ý rằng bạn chỉ nên sử dụng tính năng này nếu đó là yêu cầu chức năng. Nếu không, tôi sẽ sử dụng các URL mà không có phần mở rộng như BalusC đã đề cập (phương pháp của mình hoặc nếu bạn muốn các chức năng nâng cao của Prettyfaces).
EDIT
Dường như Prettyfaces không hoạt động trong trường hợp này. Xin lỗi vì đã lãng phí thời gian của bạn.
Bây giờ tôi sẽ đề xuất một giải pháp khả thi khác, vì câu trả lời của BalusC đã bị xóa.
1) Bạn có thể tạo một bean được quản lý mới của phạm vi phiên, chúng ta hãy gọi nó là: PageManagedBean
:
public class PageManagedBean {
private String includedPage = "/pages/accueil.xhtml";
//Setters and getters
}
2) Tạo một trang bố trí tổng thể (Facelets khuôn mẫu):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<ui:insert name="head"></ui:insert>
</h:head>
<h:body>
<div class="pagewidth">
<ui:include src="shared/header.xhtml"/>
<!-- Content -->
<div class="page_content">
<div class="page_content_inner">
<div class="container">
<ui:include id="pageLivre" src="#{pageManagedBean.includedPage}"/>
</div>
</div>
</div>
<div class="page_content_footer"/>
<ui:include src="shared/footer.xhtml"/>
</div>
</h:body>
Bây giờ khi bạn muốn để thay đổi trang, bạn chỉ cần thay đổi giá trị PageManagedBean.includedPage.
Nguồn
2013-06-21 11:01:14
máy chủ ứng dụng nào? – MaVRoSCy
Tôi đang sử dụng Glassfish – marouanoviche