【问题标题】:java.lang.NoSuchMethodError: com.ocpsoft.pretty.faces.beans.ExtractedValuesURLBuilder.build(…) When I use <h:form> in my search results pagejava.lang.NoSuchMethodError: com.ocpsoft.pretty.faces.beans.ExtractedValuesURLBuilder.build(...) 当我在搜索结果页面中使用 <h:form>
【发布时间】:2015-06-26 00:39:06
【问题描述】:

java.lang.NoSuchMethodError: com.ocpsoft.pretty.faces.beans.ExtractedValuesURLBuilder.build(…) 当我在我的搜索结果页面中使用时

这是我的配置详情

web.xml

<context-param>
  <param-name>com.ocpsoft.pretty.DEVELOPMENT</param-name>
  <param-value>true</param-value>
</context-param>


<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>

使用罐子 漂亮的脸-jsf2-3.1.0.jar prettyfaces-core-3.3.2.jar

漂亮的配置.xml

<url-mapping id="mySearch-result">
    <pattern value="/#{mySearchMBean.addressId}/"/>
    <view-id value="/pages/mySearch-result.xhtml"/> 
    <action>#{mySearchMBean.doLookupForAddress}</action>
</url-mapping>

mySearch.xhtml

      <h:form>
            Search Address by id:<br />
            <h:inputText value="#{mySearchMBean.addressId}" /><br />
             <h:commandButton type="submit" value="Submit"  action="pretty:mySearch-result" inclueViewParams="true">
             </h:commandButton>
        </h:form>

ManagedBean 和操作方法

@ManagedBean(name="mySearchMBean")
@RequestScoped
public class MySearchMBean {
public String doLookupForAddress() {
        MySearchDAO dao = new MySearchDAO();
        adresss = dao.findAddressById(addressId);
         System.out.println("doLookupForAddres");
        return "mySearch-result";
    }
}

mySearch-result.xhtml

<h:form>
<p><b>ADDRESS ID:</b> ${mySearchMBean.adresss.addressId}</p>
<p><b>NAME:</b> ${mySearchMBean.adresss.name}</p>
<p><b>STREET:</b> ${mySearchMBean.adresss.street}</p>
<p><b>LOCATION:</b> ${mySearchMBean.adresss.location}</p>
<p><b>ZIP:</b> ${mySearchMBean.adresss.zip}</p>
<h:form>

如果我在 mySearch-results.xhtml 页面中使用 h:form,它会抛出异常,根本原因如下

java.lang.NoSuchMethodError: com.ocpsoft.pretty.faces.beans.ExtractedValuesURLBuilder.build(Lcom/ocpsoft/pretty/faces/config/mapping/UrlMapping;)Ljava/lang/String;
    com.ocpsoft.pretty.faces.application.PrettyViewHandler.getActionURL(PrettyViewHandler.java:124)
    javax.faces.application.ViewHandlerWrapper.getActionURL(ViewHandlerWrapper.java:189)
    javax.faces.application.ViewHandlerWrapper.getActionURL(ViewHandlerWrapper.java:189)+

如果我从 mySearch-result 页面中删除 &lt;h:form&gt;,它的工作正常。

我是 Prettyfaces 的新手,

我错过了什么吗?我的配置和 url 映射是否正确? 谢谢。

【问题讨论】:

    标签: jsf-2 url-rewriting prettyfaces


    【解决方案1】:

    您正在混合不同的 PrettyFaces 版本:

    prettyfaces-jsf2-3.1.0.jar
    prettyfaces-core-3.3.2.jar
    

    将两者都更新到 3.3.3,一切都会好起来的。

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2015-09-23
      • 2023-03-20
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多