我一直在使用JSF(MyFaces)和PrettyFaces一段時間。除POST請求之外,一切正常。
爲什麼JSF POST請求不適用於PrettyFaces
我唯一的問題是,我不能讓POST請求任何由PrettyFaces重寫頁面。 我真的很感激你的幫助,因爲它是一個表演塞。
漂亮-config.xml中
<url-mapping id="market-view-item">
<pattern value="/market/#{viewItem.itemId}" />
<view-id value="/market/view-item.xhtml" />
</url-mapping>
的pom.xml
<dependency>
<groupId>org.ocpsoft.rewrite</groupId>
<artifactId>rewrite-servlet</artifactId>
<version>2.0.5.Final</version>
</dependency>
<dependency>
<groupId>org.ocpsoft.rewrite</groupId>
<artifactId>rewrite-config-prettyfaces</artifactId>
<version>2.0.5.Final</version>
</dependency>
我用2.0.4.Final
直到今天。我希望它能夠升級到2.0.5,但沒有任何結果。
網頁表單:
<h:form prependId="false">
<p:inputTextarea rows="3" style="width:450px; margin:5px 0;" autoResize="false"/>
<h:commandButton action="#{test.doSomething}" class="pg-button" value="Add comment"/>
</h:form>
CDI豆:
@Named("test")
@RequestScoped
public class TestB {
public void doSomething() {
System.out.println("I work.........");
}
}
任何想法,爲什麼不執行POST請求?無論我做什麼,他們都不會發生。沒有錯誤。根本不值一提。當我按下提交(Add comment
)按鈕時,Chrome會發出一個請求(ajax/non-ajax(我都試過)),但方法doSomething
不會被觸發。
我試圖withing豆viewItem
也(在相當配置指定的),但沒有。我試着在100種...
我不得不提,一切都非常面臨配置映射在GET請求很好地工作,只是我無法將它們發佈。
我找不到任何解決方案/回答這個直到現在。
我真的很感激任何幫助。
非常感謝!
如果這真的是PrettyFaces問題,您應該先嚐試。只需從pretty-config.xml文件中刪除映射,然後使用原始URL「/market/view-item.xhtml」測試頁面。在使用路徑參數時,您必須在代碼中硬編碼一些有效的ID以進行簡單的測試。如果這仍然不起作用,您還有其他問題。如果您的操作沒有執行,通常是由回發期間渲染=「false」的某個父組件造成的。你也可以用SessionScoped替換RequestScoped,看看這是否有所作爲。 – chkal
我認爲@chkal所說的是一個開始的好地方。如果這仍然存在問題,請在http://ocpsoft.org/support/的支持論壇上與我們聯繫,並上傳一個可重現此問題的小型示例項目。我們將解決這個問題,併爲您發佈一個新版本,因爲我們討厭錯誤! :) – Lincoln
嗨,夥計們!感謝您的幫助。 @chkal 頁面.xhtml頁面單獨運行正常。 POST不適用於由PrettyFaces映射的鏈接。 SessionScoped不是我要找的。對於林肯: 我會嘗試爲此做一個示例項目。 – zmirc