我一直在使用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